:root{
  --bg:#f3f2ef;--sur:#fff;--sur2:#f8f7f4;--txt:#1e1e1e;--mu:#72706a;
  --bd:#d9d5cc;--ln:#e9e5dd;--ts:#2563eb;--arm:#059669;--lost:#c62828;
  --sh:0 4px 18px rgba(0,0,0,.06);
}
*{box-sizing:border-box}
/* атрибут hidden должен побеждать любые display:flex/grid у .row/#login-overlay */
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--txt);
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1.45}
.wrap{max-width:1000px;margin:0 auto;padding:24px 18px 80px}
header{margin-bottom:18px}
h1{font-size:24px;margin:0 0 3px}
h2{font-size:15px;margin:0 0 12px}
h3{font-size:13px;margin:16px 0 8px;text-transform:uppercase;letter-spacing:.04em;color:var(--mu)}
.sub,.hint{color:var(--mu);font-size:12px}
.hint{margin-top:6px}
.muted{color:var(--mu)}
.card{background:var(--sur);border:1px solid var(--bd);border-radius:12px;
  padding:16px;box-shadow:var(--sh);margin-bottom:14px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.io-label{min-width:200px;font-weight:600;font-size:13px}
table.mini{max-width:640px}
table.mini th,table.mini td{padding:5px 8px}
table.mini tfoot th{background:#dcfce7}
.prog{margin-top:10px}
.prog-track{height:12px;background:var(--ln,#e9e5dd);border-radius:7px;overflow:hidden}
.prog-fill{height:100%;width:0;background:linear-gradient(90deg,#2563eb,#059669);
  border-radius:7px;transition:width .35s ease}
.prog-head{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin-bottom:6px}
.prog-head b{font-weight:650}
.prog-detail{font-size:12px;color:var(--mu);margin-top:5px;min-height:1.2em}
.prog.done .prog-fill{background:#059669}
.prog.fail .prog-fill{background:#dc2626}
.src-block{padding:13px 15px;border:1px solid var(--ln);border-radius:10px;background:var(--sur2)}
.src-head{font-weight:700;font-size:14px;margin-bottom:9px}
.chk{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--txt);cursor:pointer}
.chk input{margin:0}
button{background:var(--ts);color:#fff;border:0;border-radius:8px;padding:8px 14px;
  font-size:13px;font-weight:600;cursor:pointer}
button:hover{filter:brightness(1.08)}
button:disabled{background:#c9c6bf;color:#4b4f55;cursor:not-allowed}
button.ghost{background:transparent;color:var(--ts);border:1px solid var(--bd)}
button.sm{padding:4px 10px;font-size:12px}
button.ok{background:#059669}
button.no{background:#c62828}
button.sel{outline:3px solid rgba(37,99,235,.25)}
select,input[type=number],input[type=text],input[type=date],input[type=password]{
  padding:7px 9px;border:1px solid var(--bd);border-radius:8px;font-size:13px;background:#fff}
select{min-width:280px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--ln)}
th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--mu)}
.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;
  background:var(--sur2);border:1px solid var(--bd);color:var(--mu)}
.warn{background:#fff7ed;border:1px solid #fed7aa;border-radius:9px;padding:9px 11px;margin-bottom:8px}
.anom{background:#fef2f2;border:1px solid #fecaca;border-radius:9px;padding:9px 11px;margin-bottom:8px}
.dispute{border:1px solid #fde68a;background:#fffbeb;border-radius:10px;padding:11px;margin-bottom:9px}
.dispute.done{border-color:#bbf7d0;background:#f0fdf4}
.dispute .q{color:var(--mu);font-size:12px;margin:4px 0 8px}
.ok-line{color:#166534;font-weight:600}
.err{color:var(--lost);margin-top:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.ch{border:1px solid var(--ln);border-radius:9px;padding:8px 10px;background:var(--sur2);font-size:12px}
.ch.add{background:#eff6ff;border-color:#bfdbfe}
.ch.won{background:#dcfce7;border-color:#bbf7d0}
.ch.lost{background:#fee2e2;border-color:#fecaca}
.ch.moved_funnel{background:#f5f3ff;border-color:#ddd6fe}
.ch.reactivated{background:#ede9fe;border-color:#ddd6fe}
.ch b{display:block;margin-bottom:2px}
.gate{position:sticky;bottom:0;background:var(--sur);border:1px solid var(--bd);
  border-radius:12px;padding:14px;box-shadow:0 -4px 18px rgba(0,0,0,.08)}
.pos{color:#2e7d32}.neg{color:var(--lost)}
.mgr-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 14px}
.mgr-item{padding:5px 8px;border:1px solid var(--ln);border-radius:8px;background:var(--sur2);
  font-size:13px;gap:7px}
.mgr-item input{margin:0}
.rec-group{border:1px solid var(--bd);border-radius:10px;margin-top:10px;overflow:hidden}
.rec-group.nodeal{opacity:.72}
.rec-group-head{background:var(--sur2);padding:8px 12px;font-weight:700;font-size:13px;
  border-bottom:1px solid var(--ln)}
.rec-two{display:grid;grid-template-columns:1fr 1fr;gap:0}
.rec-col{padding:10px 12px}
.rec-col:first-child{border-right:1px solid var(--ln)}
.rec-col-title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--mu);margin-bottom:6px}
.rec-deal{font-size:12px;padding:5px 8px;border:1px solid var(--ln);border-radius:7px;
  background:var(--sur2);margin-bottom:5px}
.rec-deal.used{background:#f0fdf4;border-color:#bbf7d0}
.rec-order{font-size:13px;padding:7px 8px;border:1px solid var(--ln);border-radius:8px;margin-bottom:7px}
.rec-order-done{background:#f0fdf4;border-color:#bbf7d0}
@media(max-width:640px){.rec-two{grid-template-columns:1fr}.rec-col:first-child{border-right:0;border-bottom:1px solid var(--ln)}}

/* Авторизация: экран входа */
#login-overlay{position:fixed;inset:0;z-index:1000;background:var(--bg);
  display:flex;align-items:center;justify-content:center;padding:20px}
.login-box{background:var(--sur);border:1px solid var(--bd);border-radius:12px;
  box-shadow:var(--sh);padding:26px 24px;width:100%;max-width:340px;
  display:flex;flex-direction:column;gap:6px}
.login-box h2{font-size:18px;margin:0 0 12px}
.login-box .io-label{min-width:0;margin-top:6px}
.login-box input{width:100%}
.login-box button{margin-top:14px;width:100%;padding:10px}
#user-bar{display:flex;align-items:center;gap:8px}
#user-who{color:var(--mu);font-size:12px}
.app-ver{font-size:11px;font-weight:700;color:var(--ts);background:var(--sur2);
  border:1px solid var(--bd);border-radius:20px;padding:1px 9px;letter-spacing:.02em}

/* Вкладки меню */

/* Управление пользователями */
.users-tbl th,.users-tbl td{vertical-align:middle}
.users-actions{display:flex;gap:6px;flex-wrap:wrap}
.users-actions button{white-space:nowrap}
.users-actions button:disabled{opacity:.4;cursor:not-allowed}

/* ═══════════════════════════════════════════════════════════════════════════
   ПРОСТРАНСТВА И ТЕМЫ ОФОРМЛЕНИЯ
   Разметка меню одна (spaces.js); вид задаёт <html data-theme="base|shtab|pult">,
   цвет пространства — <html data-space="…"> (переменные --acc*).
   ═══════════════════════════════════════════════════════════════════════════ */
:root{--acc:#2563eb;--acc-t:#e8effd;--acc-d:#1d4ed8}
html[data-space="sales"]{--acc:#2f5bd3;--acc-t:#e7edfb;--acc-d:#163ca6}
html[data-space="service"]{--acc:#c2410c;--acc-t:#fdeee4;--acc-d:#9a3412}
html[data-space="finance"]{--acc:#15803d;--acc-t:#e3f3ea;--acc-d:#14683f}
html[data-space="marketing"]{--acc:#7e22ce;--acc-t:#f1e8fb;--acc-d:#6b21a8}
html[data-space="logistics"]{--acc:#0f766e;--acc-t:#dff3f0;--acc-d:#115e59}
html[data-space="production"]{--acc:#a16207;--acc-t:#fbf1d5;--acc-d:#854d0e}
html[data-space="parts"]{--acc:#be123c;--acc-t:#fde7ec;--acc-d:#9f1239}   /* «Запчасти» (0.21.59) — малиновый */
html[data-space="admin"]{--acc:#475467;--acc-t:#eef0f3;--acc-d:#344054}
.space[data-space="sales"]{--c:#2f5bd3;--ct:#e7edfb;--cd:#163ca6}
.space[data-space="service"]{--c:#c2410c;--ct:#fdeee4;--cd:#9a3412}
.space[data-space="finance"]{--c:#15803d;--ct:#e3f3ea;--cd:#14683f}
.space[data-space="marketing"]{--c:#7e22ce;--ct:#f1e8fb;--cd:#6b21a8}
.space[data-space="logistics"]{--c:#0f766e;--ct:#dff3f0;--cd:#115e59}
.space[data-space="production"]{--c:#a16207;--ct:#fbf1d5;--cd:#854d0e}
.space[data-space="parts"]{--c:#be123c;--ct:#fde7ec;--cd:#9f1239}
.space[data-space="admin"]{--c:#475467;--ct:#eef0f3;--cd:#344054}

/* каркас */
.nav-rail .space{display:flex;align-items:center;gap:8px;background:transparent;color:inherit;
  border:0;border-radius:0;padding:0;font:inherit;cursor:pointer}
.nav-rail .space:hover{filter:none}
.nav-rail svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.nav-sections{display:flex;gap:2px}
.nsec{background:transparent;color:inherit;border:0;font:inherit;cursor:pointer;display:flex;
  align-items:center;justify-content:space-between;gap:8px;text-align:left}
.nsec:hover{filter:none}
.nsec em{font-style:normal;font-size:12px;opacity:.7}
/* непрочитанное: кружок с числом, как новые сообщения */
.nsec em.unread{opacity:1;margin-left:auto;min-width:18px;height:18px;padding:0 6px;box-sizing:border-box;border-radius:9px;
  background:#e5484d;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;font-variant-numeric:tabular-nums}
.nav-rail .space{position:relative}
.nav-rail .space .sp-unread{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;
  border-radius:8px;background:#e5484d;color:#fff;font:700 10px/16px system-ui,sans-serif;font-style:normal;text-align:center;
  box-shadow:0 0 0 2px var(--sur,#fff);pointer-events:none}
html[data-theme="shtab"] .nav-rail .space .sp-unread{box-shadow:0 0 0 2px #0d1528}
.nav-brand{display:flex;flex-direction:column;gap:2px}
.nav-brand b{font-size:15px}
.nav-space-title{display:flex;flex-direction:column}
.nav-space-title small{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.nav-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.topbar h1{margin:0}
.topbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
a.btn{display:inline-flex;align-items:center;background:var(--ts);color:#fff;border-radius:8px;
  padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none}
a.btn.ghost{background:transparent;color:var(--ts);border:1px solid var(--bd)}

/* дашборды (общая геометрия) */
.dash{display:flex;flex-direction:column;gap:16px}
.strip{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;background:var(--sur);
  border:1px solid var(--bd);border-radius:10px;padding:10px 16px;font-size:13px}
.strip>a{margin-left:auto;font-weight:500}
.chip{white-space:nowrap}.chip b{font-variant-numeric:tabular-nums}
.up{color:#166534}.down{color:#b42318}
.kpis{display:grid;gap:16px}
.kpis.k4{grid-template-columns:1.4fr 1fr 1fr 1fr}.kpis.k1{grid-template-columns:minmax(0,420px)}.kpis.k2{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis.k5{grid-template-columns:1.3fr repeat(4,minmax(0,1fr))}.kpis.k3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis.k6{grid-template-columns:1.3fr repeat(5,minmax(0,1fr))}a.kpi-link.on{box-shadow:0 0 0 2px var(--acc)}
.kpi{background:var(--sur);border:1px solid var(--bd);border-radius:10px;padding:16px 18px;
  display:flex;flex-direction:column;gap:7px;min-width:0}
.kpi-l{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}
.kpi-v{font-size:26px;font-weight:650;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi-v small{font-size:15px;font-weight:500;color:var(--mu)}
.kpi-s{font-size:12.5px;color:var(--mu);display:flex;flex-direction:column;gap:6px}
.kpi.hero .kpi-v{font-size:32px}
.kpi.warm{border-color:#f0c38e;background:#fffaf2}
.warn-t{color:#b54708;font-weight:500}
.bar{display:block;position:relative;height:8px;border-radius:4px;background:#e4e8ef;overflow:hidden;min-width:40px}
.bar i{display:block;height:100%;background:var(--acc);border-radius:4px}
.bar.plan{overflow:visible}
.bar.plan u{position:absolute;top:-4px;width:2px;height:16px;background:var(--txt);text-decoration:none}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.panel{background:var(--sur);border:1px solid var(--bd);border-radius:10px;padding:14px 18px;
  display:flex;flex-direction:column;gap:12px;min-width:0}
.panel-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.panel-h h3{margin:0;font-size:15px;font-weight:650;text-transform:none;letter-spacing:0;color:var(--txt)}
.panel-h span{font-size:12px;color:var(--mu)}
.panel-f{padding-top:10px;border-top:1px solid var(--ln);font-size:12.5px}
.brows{display:flex;flex-direction:column;gap:10px;font-size:13px}
.brow{display:grid;grid-template-columns:minmax(120px,190px) 1fr 44px auto;gap:10px;align-items:center}
.brows.wide .brow{grid-template-columns:minmax(160px,300px) 1fr 50px 190px}
.brow-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brow-r{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.brow-x{text-align:right;color:var(--mu);font-variant-numeric:tabular-nums;min-width:90px}

.brow.lag .bar i{background:#b54708}.brow.lag .brow-r{color:#b54708}
.dt{font-size:13px}.dt td,.dt th{padding:8px 10px}
.dt .r{text-align:right;font-variant-numeric:tabular-nums}
.dt tfoot th{border-top:2px solid var(--txt);color:var(--txt);font-size:12px}
.dt tr.hot td{background:#fff6f5}
.dt .muted{font-size:12px}
.barcell{width:28%}
.dot{display:inline-block;width:9px;height:9px;border-radius:5px;margin-right:8px;vertical-align:0}
.dl{font-size:11.5px;font-weight:600;white-space:nowrap}
.pill{font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:20px;background:var(--sur2);white-space:nowrap}
.pill.up{background:#e3f3ea}.pill.down{background:#fbe9e6}.pill.warn{background:#fdf1d8;color:#92400e}
.seg{display:inline-flex;border:1px solid var(--bd);border-radius:8px;overflow:hidden;background:var(--sur)}
.seg button{background:transparent;color:var(--txt);border:0;border-radius:0;padding:7px 14px;font-weight:500}
.seg button.on{background:var(--acc);color:#fff}

.empty{background:var(--sur);border:1px dashed var(--bd);border-radius:10px;padding:22px;
  color:var(--mu);font-size:14px;line-height:1.5;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.pad{padding:6px 0}
/* выбор оформления */
.theme-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.theme-opt{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;background:var(--sur);
  color:var(--txt);border:2px solid var(--bd);border-radius:12px;padding:12px;font-weight:400}
.theme-opt:hover{filter:none;border-color:var(--acc)}
.theme-opt.active{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-t)}
.theme-opt b{font-size:14px}.theme-opt small{font-size:12px;color:var(--mu);line-height:1.4}
.theme-thumb{display:flex;gap:3px;width:100%;height:74px;border-radius:8px;overflow:hidden;background:#eceee8;padding:5px}
.theme-thumb i{display:block;border-radius:3px}

/* ── БАЗОВЫЙ: шапка + вкладки сверху (как было) ─────────────────────────── */
html[data-theme="base"] .app{max-width:1100px;margin:0 auto;padding:24px 18px 80px}
html[data-theme="base"] .nav{display:grid;grid-template-columns:1fr auto;
  grid-template-areas:"brand foot" "rail rail" "secs secs";gap:10px 16px;margin-bottom:6px}
html[data-theme="base"] .nav-side{display:contents}
html[data-theme="base"] .nav-brand{grid-area:brand}
html[data-theme="base"] .nav-brand b{font-size:24px}
html[data-theme="base"] .nav-foot{grid-area:foot;justify-content:flex-end}
html[data-theme="base"] .nav-space-title{display:none}
html[data-theme="base"] .nav-rail{grid-area:rail;display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--bd);margin-top:8px}
html[data-theme="base"] .nav-rail svg{display:none}
html[data-theme="base"] .nav-rail .space{color:var(--mu);border-bottom:2px solid transparent;padding:9px 16px;font-size:14px;font-weight:600}
html[data-theme="base"] .nav-rail .space:hover{color:var(--txt)}
html[data-theme="base"] .nav-rail .space.active{color:var(--ts);border-bottom-color:var(--ts)}
html[data-theme="base"] .nav-sections{grid-area:secs;flex-wrap:wrap;gap:6px}
html[data-theme="base"] .nsec{padding:5px 12px;border-radius:20px;border:1px solid var(--bd);background:var(--sur);color:var(--mu);font-size:13px;font-weight:500}
html[data-theme="base"] .nsec.active{background:var(--ts);border-color:var(--ts);color:#fff}
html[data-theme="base"] .topbar{margin:14px 0 14px}
html[data-theme="base"] .topbar h1{font-size:18px}

/* ── ШТАБ: тёмное меню слева в две колонки ──────────────────────────────── */
html[data-theme="shtab"] body{background:#eef0f4;font-family:"IBM Plex Sans",system-ui,sans-serif}
html[data-theme="shtab"]{--bg:#eef0f4;--bd:#d5d9e0;--ln:#edf0f4;--mu:#4a5263;--ts:var(--acc)}
html[data-theme="shtab"] .app{display:flex;min-height:100vh}
html[data-theme="shtab"] .nav{display:flex;flex:none;position:sticky;top:0;height:100vh}
html[data-theme="shtab"] .nav-rail{width:68px;background:#0d1528;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 0}
html[data-theme="shtab"] .nav-rail .space{width:44px;height:44px;justify-content:center;border-radius:10px;color:#8f9bb3}
html[data-theme="shtab"] .nav-rail .space span{display:none}
html[data-theme="shtab"] .nav-rail .space:hover{color:#fff;background:rgba(255,255,255,.08)}
html[data-theme="shtab"] .nav-rail .space.active{background:var(--c);color:#fff}
html[data-theme="shtab"] .space-admin{margin-top:auto}
html[data-theme="shtab"] .nav-side{width:232px;background:#16213a;color:#c3cbda;display:flex;flex-direction:column;padding:18px 10px;overflow:auto}
html[data-theme="shtab"] .nav-brand{padding:0 10px 12px}
html[data-theme="shtab"] .nav-brand b{color:#fff}
html[data-theme="shtab"] .nav-brand .sub{color:#8f9bb3}
html[data-theme="shtab"] .nav-space-title{padding:12px 10px 10px;border-top:1px solid rgba(255,255,255,.08);color:#8f9bb3}
html[data-theme="shtab"] .nav-space-title span{font-size:17px;font-weight:650;color:#fff}
html[data-theme="shtab"] .nav-sections{flex-direction:column}
html[data-theme="shtab"] .nsec{height:40px;padding:0 12px;border-radius:6px;font-size:13.5px}
html[data-theme="shtab"] .nsec:hover{background:rgba(255,255,255,.06);color:#fff}
html[data-theme="shtab"] .nsec.active{background:rgba(255,255,255,.12);color:#fff;font-weight:550}
html[data-theme="shtab"] .nav-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid rgba(255,255,255,.08);font-size:12px}
html[data-theme="shtab"] #user-who{color:#c3cbda}
html[data-theme="shtab"] .nav-foot .app-ver{background:transparent;color:#8f9bb3;border-color:rgba(255,255,255,.2)}
html[data-theme="shtab"] .nav-foot button.ghost{color:#c3cbda;border-color:rgba(255,255,255,.2)}
html[data-theme="shtab"] .main{flex:1;min-width:0}
html[data-theme="shtab"] .topbar{position:sticky;top:0;z-index:5;min-height:64px;padding:10px 24px;background:#fff;border-bottom:1px solid var(--bd)}
html[data-theme="shtab"] .topbar h1{font-size:18px;font-weight:650}
html[data-theme="shtab"] .content{padding:20px 24px 80px}
html[data-theme="shtab"] .card,html[data-theme="shtab"] .kpi,html[data-theme="shtab"] .panel,html[data-theme="shtab"] .strip{border-radius:8px;box-shadow:none}

/* ── ПУЛЬТ: светлая плавающая панель, цветные плитки ─────────────────────── */
html[data-theme="pult"] body{background:#eceee8;font-family:"Onest",system-ui,sans-serif;color:#17191c}
html[data-theme="pult"]{--bg:#eceee8;--bd:#e4e6e0;--ln:#eef0ec;--mu:#555a61;--sur2:#f3f4f1;--ts:var(--acc)}
html[data-theme="pult"] .app{display:flex;gap:20px;padding:20px;min-height:100vh;box-sizing:border-box}
html[data-theme="pult"] .nav{flex:none;width:272px;box-sizing:border-box;background:#fff;border-radius:22px;padding:18px;
  display:flex;flex-direction:column;gap:14px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
html[data-theme="pult"] .nav-side{display:contents}
html[data-theme="pult"] .nav-brand{order:0;padding:2px 4px}
html[data-theme="pult"] .nav-rail{order:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
html[data-theme="pult"] .nav-rail .space{flex-direction:column;align-items:flex-start;justify-content:space-between;height:78px;
  padding:12px;border-radius:14px;background:var(--ct);color:var(--cd);font-size:13.5px;font-weight:600}
html[data-theme="pult"] .nav-rail .space.active{background:var(--c);color:#fff}
html[data-theme="pult"] .nav-rail .space-admin{grid-column:1/-1;height:44px;flex-direction:row;align-items:center;justify-content:flex-start}
html[data-theme="pult"] .nav-rail .space-admin svg{width:18px;height:18px}
html[data-theme="pult"] .nav-space-title{order:2;padding:4px 14px 0;color:var(--mu)}
html[data-theme="pult"] .nav-space-title small{display:none}
html[data-theme="pult"] .nav-space-title span{font-size:12px;font-weight:600}
html[data-theme="pult"] .nav-sections{order:3;flex-direction:column}
html[data-theme="pult"] .nsec{height:42px;padding:0 14px;border-radius:12px;color:#2c3036;font-size:14px}
html[data-theme="pult"] .nsec:hover{background:var(--sur2)}
html[data-theme="pult"] .nsec.active{background:var(--acc-t);color:var(--acc-d);font-weight:600}
html[data-theme="pult"] .nav-foot{order:4;margin-top:auto;padding:10px;border-radius:14px;background:var(--sur2);font-size:13px}
html[data-theme="pult"] .main{flex:1;min-width:0}
html[data-theme="pult"] .topbar{padding:6px 4px 16px}
html[data-theme="pult"] .topbar h1{font-family:"Unbounded","Onest",sans-serif;font-size:28px;font-weight:600;letter-spacing:-.02em}
html[data-theme="pult"] .content{padding-bottom:60px}
html[data-theme="pult"] button,html[data-theme="pult"] a.btn{border-radius:22px;padding:10px 18px}
html[data-theme="pult"] button.sm{padding:5px 12px}
html[data-theme="pult"] .seg{border-radius:22px;border:0;padding:4px}
html[data-theme="pult"] .seg button{border-radius:18px}
html[data-theme="pult"] .card,html[data-theme="pult"] .kpi,html[data-theme="pult"] .panel,html[data-theme="pult"] .strip{border:0;border-radius:18px;box-shadow:none}
html[data-theme="pult"] .kpi{padding:18px 20px}
html[data-theme="pult"] .kpi-v{font-family:"Unbounded","Onest",sans-serif;font-weight:600}
/* главная плитка раздела — заливка цветом пространства (Пульт и Штаб) */
:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero{background:var(--acc);color:#fff}
:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero .kpi-l,:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero .kpi-s,:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero .kpi-v small{color:rgba(255,255,255,.85)}
html[data-theme="pult"] .kpi.warm{background:#fff4e5}
html[data-theme="pult"] .panel{padding:18px 22px}
html[data-theme="pult"] .bar{height:8px;background:#eef0ec}
:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero .bar{background:rgba(255,255,255,.25)}
:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero .bar i{background:#fff}
:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero .bar.plan u{background:#ffd166}
:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero .warn-t{color:#ffd166}

/* узкий экран: меню Штаба/Пульта — полосой сверху */
@media (max-width:900px){
  html[data-theme="shtab"] .app,html[data-theme="pult"] .app{flex-direction:column}
  html[data-theme="shtab"] .nav,html[data-theme="pult"] .nav{position:static;height:auto;width:auto}
  html[data-theme="shtab"] .nav-rail{width:auto;flex-direction:row;padding:8px}
  html[data-theme="shtab"] .space-admin{margin-top:0;margin-left:auto}
  html[data-theme="shtab"] .nav{flex-direction:column}
  html[data-theme="shtab"] .nav-side{width:auto}
  .kpis.k4,.kpis.k3,.kpis.k5,.kpis.k6,.grid2,.theme-pick{grid-template-columns:1fr}
}
/* 0.21.64: шесть плиток в ряд — только на очень широком экране; иначе 2 ряда по 3 (на 1440 px подписи переносились в 4–5 строк, суммы упирались в край) */
@media (max-width:1700px){.kpis.k6{grid-template-columns:1.3fr repeat(2,minmax(0,1fr))}}
@media (max-width:1180px){.kpis.k4{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis.k5,.kpis.k6{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* 0.21.64: узкий экран — правило выше раньше перебивало «одна в ряд» из блока 900px (на телефоне плитки шли по три). Планшет — по две, телефон — по одной */
@media (max-width:900px){.kpis.k3,.kpis.k4,.kpis.k5,.kpis.k6{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis>.kpi.hero{grid-column:1/-1}}
@media (max-width:560px){.kpis.k3,.kpis.k4,.kpis.k5,.kpis.k6{grid-template-columns:1fr}}
details.more summary{cursor:pointer;color:var(--mu);font-size:13px;padding:4px 0}
details.more[open] summary{margin-bottom:10px}

/* сделки, отгрузки, динамика */
.strip select,.strip input[type=text]{min-width:0}
.strip input[type=text]{width:280px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dt .c{text-align:center}.nw{white-space:nowrap}
.dt.deals td{vertical-align:top}

.pill.new{background:var(--acc);color:#fff;font-size:10px;padding:1px 6px}
.sdot{display:inline-block;width:8px;height:8px;border-radius:4px;margin-right:5px;vertical-align:0}
.sdot.g{background:#16a34a}.sdot.y{background:#d97706}.sdot.r{background:#dc2626}
.cmcell{min-width:260px;max-width:420px}
.cm{white-space:pre-line;font-size:12.5px;line-height:1.4;color:var(--txt);display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden;cursor:pointer;border-radius:6px}
.cm.open{display:block;-webkit-line-clamp:unset;background:var(--sur2);padding:6px 8px}
.reason{font-size:12.5px;margin-bottom:4px}

.dbadge{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:20px;
  background:#f0ede6;color:#72706a;white-space:nowrap}
.dbadge.up{background:#dcfce7;color:#166534}.dbadge.down{background:#fee2e2;color:#991b1b}

:is(html[data-theme="pult"],html[data-theme="shtab"]) .kpi.hero .dbadge{background:rgba(255,255,255,.2);color:#fff}
.kpis.k4 .kpi-v small,.kpis.k5 .kpi-v small,.kpis.k6 .kpi-v small{font-size:13px}
.stale-bar{background:#fff4e5;border:1px solid #f0c38e;color:#7a3d06;border-radius:10px;padding:12px 16px;
  font-size:13.5px;line-height:1.45;margin-bottom:16px}

/* ── Тепловая заливка стадий и тёплые кнопки воронок (палитра — от пространства) ──
   --row-cold → --row-warm: ранняя стадия → ближе к отгрузке/оплате (--t в строке).
   --w1..--w3: тёплые тона пространства для кнопок воронок. */
:root{--row-cold:#eef2f8;--row-warm:#fdebd8;--w1:#f08c00;--w2:#e8590c;--w3:#d6336c}
html[data-space="sales"]{--row-cold:#e8effd;--row-warm:#ffe6cc;--w1:#f08c00;--w2:#e8590c;--w3:#d9480f}
html[data-space="service"]{--row-cold:#f4efe9;--row-warm:#ffd9bd;--w1:#f59f00;--w2:#e8590c;--w3:#c92a2a}
html[data-space="finance"]{--row-cold:#e6f4ec;--row-warm:#fbeec4;--w1:#c99a06;--w2:#e67700;--w3:#d9480f}
html[data-space="marketing"]{--row-cold:#eee8fb;--row-warm:#fde0ec;--w1:#e64980;--w2:#e8590c;--w3:#f08c00}
tr.heat td{background:color-mix(in oklab,var(--row-warm) var(--t),var(--row-cold));border-bottom:2px solid var(--sur)}
tr.heat:hover td{filter:brightness(.97)}
tr.heat .stg{font-weight:600;color:color-mix(in oklab,var(--w2) var(--t),var(--acc-d))}
.dt.deals{border-collapse:separate;border-spacing:0}
.heat-legend{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--mu);margin:-4px 2px}
.heat-legend i{display:block;width:160px;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--row-cold),var(--row-warm));
  border:1px solid var(--bd)}
.fseg{display:inline-flex;gap:6px;flex-wrap:wrap}
.fbtn{--wc:var(--w1);background:color-mix(in srgb,var(--wc) 14%,#fff);color:color-mix(in srgb,var(--wc) 78%,#000);
  border:1px solid color-mix(in srgb,var(--wc) 35%,#fff);border-radius:8px;padding:7px 14px;font-weight:600}
.fbtn b{margin-left:4px;font-variant-numeric:tabular-nums;opacity:.8}
.fbtn:hover{filter:none;background:color-mix(in srgb,var(--wc) 24%,#fff)}
.fbtn.on{background:var(--wc);border-color:var(--wc);color:#fff}
.fbtn.w1{--wc:var(--w1)}.fbtn.w2{--wc:var(--w2)}.fbtn.w3{--wc:var(--w3)}
html[data-theme="pult"] .fbtn{border-radius:20px}
/* план по менеджерам: «NN% / 36,4 млн» */
.brow{grid-template-columns:minmax(120px,190px) 1fr minmax(44px,auto) auto}
.brow-r .muted{font-weight:500}
.brow-sub{display:block;font-size:11px;color:var(--mu)}
.brow.share .bar i{background:var(--acc-d);opacity:.55}
/* отгрузки внутри обзора */
.kpis.inner .kpi{background:var(--sur2);border:0}
.panel-h h3 small{font-size:12px;font-weight:500;margin-left:6px}

/* ── 3.8: палитра стадий — оттенки ОСНОВНОГО цвета пространства ───────────────
   (переопределяет тёплую схему 3.7). Ранняя стадия — светлый тон, ближе к
   отгрузке/оплате — насыщеннее. Кнопки воронок — разные оттенки того же цвета. */
html[data-space="sales"]{--row-cold:#f3f6fe;--row-warm:#c7d7fa;--w1:#5b8def;--w2:#2f5bd3;--w3:#1e3a8a}
html[data-space="service"]{--row-cold:#fdf6f0;--row-warm:#f7cdb0;--w1:#f08c3c;--w2:#c2410c;--w3:#7c2d12}
html[data-space="finance"]{--row-cold:#f1f9f4;--row-warm:#bde4cb;--w1:#40a86a;--w2:#15803d;--w3:#0f5132}
html[data-space="marketing"]{--row-cold:#f8f3fe;--row-warm:#dcc9f6;--w1:#a77be6;--w2:#7e22ce;--w3:#4a1480}
html[data-space="parts"]{--row-cold:#fef4f6;--row-warm:#f9c6d1;--w1:#e5536f;--w2:#be123c;--w3:#7f0f2b}
html[data-space="admin"]{--row-cold:#f5f6f8;--row-warm:#dde1e8;--w1:#8a94a6;--w2:#475467;--w3:#1f2937}
tr.heat .stg{color:color-mix(in oklab,var(--acc-d) calc(55% + var(--t) * .45),var(--mu))}
.fbtn{background:color-mix(in srgb,var(--wc) 12%,#fff);color:color-mix(in srgb,var(--wc) 85%,#000);
  border-color:color-mix(in srgb,var(--wc) 40%,#fff)}
/* шапки таблиц — чуть темнее, чтобы отделялись от строк */
.dt thead th{background:color-mix(in oklab,var(--acc) 10%,#eef0f3);color:#2c3340;border-bottom:1px solid var(--bd)}
.dt thead th:first-child{border-top-left-radius:6px}.dt thead th:last-child{border-top-right-radius:6px}
/* изменения за неделю */
.cchips{gap:8px}
.cchip{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:20px;text-decoration:none;font-size:13px;
  background:var(--cbg);color:var(--cfg)}
.chg,.cchip{--cbg:#eef0f3;--cfg:#344054;--cc:#667085}
.add{--cbg:#e7edfb;--cfg:#163ca6;--cc:#2f5bd3}
.won{--cbg:#dcfce7;--cfg:#166534;--cc:#16a34a}
.lost{--cbg:#fee2e2;--cfg:#991b1b;--cc:#dc2626}
.moved{--cbg:#f1e8fb;--cfg:#6b21a8;--cc:#7e22ce}
.react{--cbg:#ede9fe;--cfg:#5b21b6;--cc:#7c3aed}
.chg .panel-h h3{display:flex;align-items:center;gap:8px}
.cdot{width:10px;height:10px;border-radius:5px;background:var(--cc);display:inline-block}
.chg .arr{color:var(--mu)}
.chg .dt td{vertical-align:top}
a.kpi-link{text-decoration:none;color:inherit;cursor:pointer;transition:box-shadow .15s,transform .15s}
a.kpi-link:hover{box-shadow:0 0 0 2px var(--w1);transform:translateY(-1px)}
a.kpi-link:focus-visible{outline:3px solid var(--acc-t);outline-offset:2px}
.kpi-go{float:right;text-transform:none;letter-spacing:0;font-weight:600;color:var(--acc)}
/* на главной (залитой акцентом) плитке «подробнее →» — цветом её текста, иначе акцент на акценте не виден (0.20.9) */
:is(.kpi.hero,.td-tile.hero) .kpi-go{color:inherit;opacity:.85}
.fbtn{background:color-mix(in srgb,var(--wc) 24%,#fff);border-color:var(--wc);color:color-mix(in srgb,var(--wc) 70%,#000)}
.fbtn::before{content:"";display:inline-block;width:9px;height:9px;border-radius:5px;background:var(--wc);margin-right:7px;vertical-align:0}
.fbtn.on::before{background:#fff}

/* ═══════════════════════════════════════════════════════════════════════════
   ТЁМНАЯ ТЕМА — <html data-mode="dark"> (переключатель «Светлая/Тёмная/Авто»
   в меню над именем пользователя). Работает поверх любого оформления.
   ═══════════════════════════════════════════════════════════════════════════ */
html[data-mode="dark"]{color-scheme:dark}
html[data-mode="dark"],html[data-mode="dark"][data-theme]{
  --bg:#0f1216;--sur:#171b21;--sur2:#1f242b;--txt:#e6e8eb;--mu:#9aa3af;--bd:#2c333c;--ln:#242a32;
  --sh:0 4px 18px rgba(0,0,0,.35);
  --row-cold:color-mix(in oklab,var(--acc) 6%,#171b21);--row-warm:color-mix(in oklab,var(--acc) 34%,#171b21)}
html[data-mode="dark"][data-space="sales"]{--acc:#5b8def;--acc-t:#1c2a47;--acc-d:#9dbcf7;--w1:#7fa7f2;--w2:#4c7fe8;--w3:#2f5bd3}
html[data-mode="dark"][data-space="service"]{--acc:#ea7a3c;--acc-t:#3a2418;--acc-d:#f5b48c;--w1:#f5a56b;--w2:#e8742f;--w3:#c2410c}
html[data-mode="dark"][data-space="finance"]{--acc:#3fb36f;--acc-t:#16301f;--acc-d:#8fdcae;--w1:#6fcf97;--w2:#3fb36f;--w3:#1e874b}
html[data-mode="dark"][data-space="marketing"]{--acc:#a77be6;--acc-t:#2b1e40;--acc-d:#cfb3f5;--w1:#c3a0f0;--w2:#a77be6;--w3:#8a4fdc}
html[data-mode="dark"][data-space="admin"]{--acc:#8a94a6;--acc-t:#232833;--acc-d:#c3cad6}
html[data-mode="dark"][data-space="logistics"]{--acc:#2db3a5;--acc-t:#12302d;--acc-d:#8fe0d6;--w1:#6fd6ca;--w2:#2db3a5;--w3:#0f766e}
html[data-mode="dark"][data-space="production"]{--acc:#d6a52c;--acc-t:#33290f;--acc-d:#f0cf7a;--w1:#e8c064;--w2:#d6a52c;--w3:#a16207}
html[data-mode="dark"][data-space="parts"]{--acc:#fb7185;--acc-t:#3b1820;--acc-d:#fecdd6;--w1:#fda4b4;--w2:#fb7185;--w3:#e11d48}
html[data-mode="dark"] body,html[data-mode="dark"][data-theme] body{background:var(--bg);color:var(--txt)}

/* поля ввода, кнопки-«призраки», карточки, таблицы */
html[data-mode="dark"] select,html[data-mode="dark"] input[type=number],html[data-mode="dark"] input[type=text],
html[data-mode="dark"] input[type=date],html[data-mode="dark"] input[type=password],html[data-mode="dark"] input[type=file]{
  background:var(--sur2);color:var(--txt);border-color:var(--bd)}
html[data-mode="dark"] button:disabled{background:#3a414b;color:#8b939e}
html[data-mode="dark"] .dt thead th,html[data-mode="dark"] th{color:#b9c0ca}
html[data-mode="dark"] .dt thead th{background:color-mix(in oklab,var(--acc) 14%,#20252c)}
html[data-mode="dark"] .dt tfoot th{border-top-color:var(--mu)}
html[data-mode="dark"] .dt tr.hot td{background:#3a1d1d}
html[data-mode="dark"] tr.heat td{border-bottom-color:var(--bg)}
html[data-mode="dark"] .bar{background:#2a3038}
html[data-mode="dark"] .up{color:#4ade80}html[data-mode="dark"] .down{color:#f87171}
html[data-mode="dark"] .warn-t,html[data-mode="dark"] .brow.lag .brow-r{color:#fbbf24}
html[data-mode="dark"] .kpi.warm,html[data-mode="dark"] .stale-bar{background:#2e2414;border-color:#6b4e1f;color:#f5d7a1}

html[data-mode="dark"] .pill.up,html[data-mode="dark"] .dbadge.up{background:#12301f;color:#6ee7a0}
html[data-mode="dark"] .pill.down,html[data-mode="dark"] .dbadge.down{background:#3a1d1d;color:#fca5a5}
html[data-mode="dark"] .pill.warn{background:#3a2a10;color:#fcd34d}
html[data-mode="dark"] .dbadge{background:#262b33;color:#b9c0ca}
html[data-mode="dark"] .fbtn{background:color-mix(in srgb,var(--wc) 22%,#171b21);color:color-mix(in srgb,var(--wc) 55%,#fff)}
html[data-mode="dark"] .fbtn.on{background:var(--wc);color:#0f1216}
html[data-mode="dark"] .fbtn.on::before{background:#0f1216}
html[data-mode="dark"] .cm.open{background:#262c34}
html[data-mode="dark"] .empty{background:var(--sur)}
/* изменения за неделю */
html[data-mode="dark"] .chg,html[data-mode="dark"] .cchip{--cbg:#262b33;--cfg:#c3cad6}
html[data-mode="dark"] .add{--cbg:#1c2a47;--cfg:#9dbcf7;--cc:#5b8def}
html[data-mode="dark"] .won{--cbg:#12301f;--cfg:#6ee7a0;--cc:#22c55e}
html[data-mode="dark"] .lost{--cbg:#3a1d1d;--cfg:#fca5a5;--cc:#ef4444}
html[data-mode="dark"] .moved,html[data-mode="dark"] .react{--cbg:#2b1e40;--cfg:#cfb3f5;--cc:#a77be6}
/* старые блоки «Данные и отчёт» / «Верстак» (разметка из app.js) */
html[data-mode="dark"] .warn{background:#2e2414;border-color:#6b4e1f}
html[data-mode="dark"] .anom{background:#3a1d1d;border-color:#7f2d2d}
html[data-mode="dark"] .dispute{background:#2e2414;border-color:#6b4e1f}
html[data-mode="dark"] .dispute.done,html[data-mode="dark"] .rec-deal.used,html[data-mode="dark"] .rec-order-done{background:#12301f;border-color:#1f5a37}
html[data-mode="dark"] .ch.add{background:#1c2a47;border-color:#2c4270}
html[data-mode="dark"] .ch.won{background:#12301f;border-color:#1f5a37}
html[data-mode="dark"] .ch.lost{background:#3a1d1d;border-color:#7f2d2d}
html[data-mode="dark"] .ch.moved_funnel,html[data-mode="dark"] .ch.reactivated{background:#2b1e40;border-color:#4a3470}
html[data-mode="dark"] table.mini tfoot th{background:#12301f}
html[data-mode="dark"] .gate{box-shadow:0 -4px 18px rgba(0,0,0,.4)}
html[data-mode="dark"] a{color:color-mix(in srgb,var(--acc) 70%,#fff)}
html[data-mode="dark"] a.btn{color:#fff}
html[data-mode="dark"] a.btn.ghost{color:var(--acc-d)}
html[data-mode="dark"] a.kpi-link{color:inherit}
/* оформления */
html[data-mode="dark"][data-theme="shtab"] .topbar{background:var(--sur);border-bottom-color:var(--bd)}
html[data-mode="dark"][data-theme="shtab"] .nav-rail{background:#080b10}
html[data-mode="dark"][data-theme="shtab"] .nav-side{background:#10151f}
html[data-mode="dark"][data-theme="pult"] .nav{background:var(--sur)}
html[data-mode="dark"][data-theme="pult"] .nav-rail .space{background:color-mix(in srgb,var(--c) 22%,#171b21);color:color-mix(in srgb,var(--c) 45%,#fff)}
html[data-mode="dark"][data-theme="pult"] .nav-rail .space.active{background:var(--c);color:#fff}
html[data-mode="dark"][data-theme="pult"] .nsec{color:var(--txt)}
html[data-mode="dark"][data-theme="pult"] .kpi.warm{background:#2e2414}
html[data-mode="dark"] .theme-opt{background:var(--sur2)}
html[data-mode="dark"] .login-box{background:var(--sur)}

/* ── переключатель светлая/тёмная/авто — над именем пользователя ─────────── */
.mode-switch{flex-basis:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:3px;
  border-radius:9px;background:var(--sur2);border:1px solid var(--bd)}
.mode-switch button{display:flex;align-items:center;justify-content:center;gap:5px;background:transparent;color:var(--mu);
  border:0;border-radius:7px;padding:6px 4px;font-size:11.5px;font-weight:600;min-height:32px}
.mode-switch button:hover{filter:none;color:var(--txt)}
.mode-switch button.on{background:var(--sur);color:var(--txt);box-shadow:0 1px 3px rgba(0,0,0,.15)}
.mode-switch svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* в тёмном меню Штаба — свои цвета */
html[data-theme="shtab"] .mode-switch{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1)}
html[data-theme="shtab"] .mode-switch button{color:#8f9bb3}
html[data-theme="shtab"] .mode-switch button:hover{color:#fff}
html[data-theme="shtab"] .mode-switch button.on{background:rgba(255,255,255,.14);color:#fff;box-shadow:none}
/* в Минимале — в шапке справа, компактно (только значки) */
html[data-theme="base"] .mode-switch{flex-basis:auto;width:auto;grid-template-columns:repeat(3,36px)}
html[data-theme="base"] .mode-switch span{display:none}

/* ── 4.1: переключатель темы — только значки (во всех оформлениях) ─────────── */
html .mode-switch{flex-basis:auto;width:auto;display:inline-grid;grid-template-columns:repeat(3,34px);gap:2px}
html .mode-switch span{display:none}
html .mode-switch button{padding:0;min-height:30px}
html .mode-switch svg{width:16px;height:16px}

/* ── Изменения за неделю: таблица каждой группы — в цвет её кнопки ───────────
   Новые — синий, смена стадии — серый, выиграно — зелёный, проиграно — красный. */
html .chg{background:color-mix(in oklab,var(--cc) 6%,var(--sur));border-color:color-mix(in oklab,var(--cc) 30%,var(--bd))}
html .chg .dt thead th{background:color-mix(in oklab,var(--cc) 22%,var(--sur));color:var(--cfg)}
html .chg .dt tbody td{background:color-mix(in oklab,var(--cc) 9%,var(--sur));border-bottom:2px solid color-mix(in oklab,var(--cc) 4%,var(--sur))}
html .chg .dt tbody tr:hover td{background:color-mix(in oklab,var(--cc) 15%,var(--sur))}
html .chg .panel-h h3{color:var(--cfg)}
html .chg .dt{border-collapse:separate;border-spacing:0}
html .chg .cm.open{background:color-mix(in oklab,var(--cc) 16%,var(--sur))}

/* ── 4.2: постоянные цвета воронок — Продажа ТС зелёная, Трейлер-Про оранжевая ── */
.fbtn.fts{--wc:#16a34a}.fbtn.farm{--wc:#ea580c}
html[data-mode="dark"] .fbtn.fts{--wc:#34d399}html[data-mode="dark"] .fbtn.farm{--wc:#fb923c}

/* ── 4.3: низ меню (Штаб, Пульт) — всё растянуто на ширину меню ─────────────
   ряд 1: тема — три равные кнопки; ряд 2: пользователь; ряд 3: версия | Выйти */
/* #user-bar — по id, иначе старое `#user-bar{display:flex}` перебивает сетку */
html[data-theme="shtab"] #user-bar.nav-foot,html[data-theme="pult"] #user-bar.nav-foot{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}
html[data-theme="shtab"] .nav-foot .mode-switch,html[data-theme="pult"] .nav-foot .mode-switch{
  grid-column:1/-1;display:grid;width:auto;grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-theme="shtab"] .nav-foot .mode-switch button,html[data-theme="pult"] .nav-foot .mode-switch button{min-height:34px}
html[data-theme="shtab"] #user-who,html[data-theme="pult"] #user-who{grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-theme="shtab"] .nav-foot .app-ver,html[data-theme="pult"] .nav-foot .app-ver,
html[data-theme="shtab"] .nav-foot #btn-logout,html[data-theme="pult"] .nav-foot #btn-logout{
  display:flex;align-items:center;justify-content:center;height:32px;box-sizing:border-box;margin:0;border-radius:8px;padding:0 8px}
/* у пользователя (не админа) версии нет — «Выйти» на всю ширину */
html[data-theme="shtab"] .nav-foot .app-ver[hidden]+#btn-logout,html[data-theme="pult"] .nav-foot .app-ver[hidden]+#btn-logout{grid-column:1/-1}

/* ── 4.4: счётчики изменений — ссылки к группам на «Изменениях за неделю» ── */
.strip a.chip{text-decoration:none;color:inherit;padding:3px 8px;margin:-3px -2px;border-radius:14px}
.strip a.chip.up{color:#166534}.strip a.chip.down{color:#b42318}
.strip a.chip:hover{background:var(--acc-t);color:var(--acc-d)}
html[data-mode="dark"] .strip a.chip.up{color:#4ade80}html[data-mode="dark"] .strip a.chip.down{color:#f87171}
.chg{scroll-margin-top:84px}
@keyframes chgflash{0%{box-shadow:0 0 0 0 var(--cc)}30%{box-shadow:0 0 0 4px var(--cc)}100%{box-shadow:0 0 0 0 transparent}}
.chg.flash{animation:chgflash 1.4s ease-out}

/* ── 4.6: градиент стадий — в цвет кнопки воронки; ссылки на сделки ──────── */
.fz.fts{--fc:#16a34a}.fz.farm{--fc:#ea580c}
html[data-mode="dark"] .fz.fts{--fc:#34d399}html[data-mode="dark"] .fz.farm{--fc:#fb923c}
.fz.fts,.fz.farm{--row-cold:color-mix(in oklab,var(--fc) 5%,var(--sur));--row-warm:color-mix(in oklab,var(--fc) 30%,var(--sur))}
.fz.fts tr.heat .stg,.fz.farm tr.heat .stg{color:color-mix(in oklab,var(--fc) calc(55% + var(--t) * .4),#1e1e1e)}
html[data-mode="dark"] .fz.fts tr.heat .stg,html[data-mode="dark"] .fz.farm tr.heat .stg{color:color-mix(in oklab,var(--fc) 80%,#fff)}
.fz.fts .dt thead th,.fz.farm .dt thead th{background:color-mix(in oklab,var(--fc) 16%,var(--sur))}
a.deal-a{font-weight:700;color:inherit;text-decoration:none;border-bottom:1px dashed color-mix(in srgb,currentColor 45%,transparent)}
a.deal-a:hover{color:var(--acc-d);border-bottom-style:solid}
.fz.fts a.deal-a:hover,.fz.farm a.deal-a:hover{color:color-mix(in oklab,var(--fc) 80%,#000)}
html[data-mode="dark"] a.deal-a{color:var(--txt)}
html[data-mode="dark"] a.deal-a:hover{color:var(--acc-d)}

/* ── 4.7: цветные счётчики в полосе «Изменения за 7 дней» (как на её странице) ── */
.strip a.cchip{padding:4px 11px}
.strip a.cchip:hover{filter:brightness(.95)}
.cchip.stage{--cbg:#e7e9ee;--cfg:#344054}
html[data-mode="dark"] .cchip.stage{--cbg:#2a3039;--cfg:#c3cad6}

/* ── знак «Пульт 360» (кольцо с точкой, с 0.20.2) слева от названия программы и компании ──── */
.nav-brand{flex-direction:row;align-items:center;justify-content:flex-start;gap:12px}
.nav-brand-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.nav-brand-text .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-logo{flex:none;width:36px;height:36px;display:block}
html[data-theme="base"] .nav-brand{justify-content:flex-start;gap:14px}
html[data-theme="base"] .brand-logo{width:38px;height:38px}

/* ── 5.0: Штаб — шапка «Пульт 360 · Демо-холдинг · лого» на всю ширину меню,
   иконки пространств — ниже, на уровне надписи «Пространство» ────────────
   Меню — сетка: [шапка на обе колонки] / [иконки | пространство, разделы, низ] */
html[data-theme="shtab"] .nav{display:grid;grid-template-columns:68px 232px;
  grid-template-rows:auto auto 1fr auto;background:#16213a}
html[data-theme="shtab"] .nav-side{display:contents}
html[data-theme="shtab"] .nav-brand{grid-column:1/-1;grid-row:1;padding:16px 16px 14px 16px;
  border-bottom:1px solid rgba(255,255,255,.08);background:#16213a}
html[data-theme="shtab"] .nav-rail{grid-column:1;grid-row:2/-1;padding-top:12px}
html[data-theme="shtab"] .nav-space-title{grid-column:2;grid-row:2;border-top:0;margin:0 10px;padding:12px 10px 10px}
html[data-theme="shtab"] .nav-sections{grid-column:2;grid-row:3;margin:0 10px;overflow:auto;align-content:start;align-self:start}
html[data-theme="shtab"] #user-bar.nav-foot{grid-column:2;grid-row:4;margin:0 10px;padding:12px 10px 18px}
html[data-mode="dark"][data-theme="shtab"] .nav,html[data-mode="dark"][data-theme="shtab"] .nav-brand{background:#10151f}
@media (max-width:900px){
  html[data-theme="shtab"] .nav{display:flex;flex-direction:column}
  html[data-theme="shtab"] .nav-rail{order:1}
}

/* ── 5.1: «Динамика новых сделок» — как в отчёте руководителю (Chart.js) ──── */
.dyn-grid{display:grid;grid-template-columns:250px minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch}
.dyn-kpi{background:#f0f6ff;border:1px solid #c5d1df;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.dyn-kpi-l{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#1e3a5f}
.dyn-kpi-v{display:flex;align-items:center;gap:8px}
.dyn-kpi-v b{font-size:30px;line-height:1;color:#1e3a5f;font-variant-numeric:tabular-nums}
.dyn-kpi-s{font-size:13px;color:#4a4640}
.dyn-kpi-f{font-size:11.5px;color:var(--mu)}

html[data-mode="dark"] .dyn-kpi{background:#172238;border-color:#2c4270}
html[data-mode="dark"] .dyn-kpi-l,html[data-mode="dark"] .dyn-kpi-v b{color:#c9dcff}
html[data-mode="dark"] .dyn-kpi-s{color:var(--txt)}
@media (max-width:1100px){.dyn-grid{grid-template-columns:1fr}}

/* ── 5.2: полоса «Изменения за 7 дней» — счётчики подряд сразу за надписью ──
   (`.strip>a{margin-left:auto}` для «Подробнее» цеплял и счётчики-ссылки) */
.strip>a.cchip{margin-left:0}
.strip:has(>a.cchip){gap:6px}
.strip:has(>a.cchip)>b{margin-right:6px}

/* ── 5.5: числа в таблицах не переносим («1 890 000 ₽» — одной строкой) ── */
.dt td.r,.dt th.r{white-space:nowrap}

/* ── 6.0: Сервис → Изменения (сравнение снимков ЗН) ─────────────────────── */
.sumk{--cbg:#fff1e0;--cfg:#9a3412;--cc:#ea580c}
html[data-mode="dark"] .sumk{--cbg:#3a2418;--cfg:#f5b48c;--cc:#fb923c}

/* Финансы → Поступления · сервис: группы по контрагенту */
#fin-svc-pays .panel-h h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.seg.sm button{padding:4px 11px;font-size:12px}
#fin-svc-day{min-width:0;width:auto;padding:4px 8px;font-size:12px;font-weight:500}
.fs-table .many .fs-head{cursor:pointer}
.fs-table .many .fs-head:hover td{background:color-mix(in srgb,var(--acc) 7%,transparent)}
.fs-table .fs-head:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.fs-table .fs-caret{width:22px;color:var(--acc);font-size:16px;line-height:1;padding-right:0;text-align:center}
.fs-table .fs-grp.open .fs-head td{background:color-mix(in srgb,var(--acc) 10%,transparent)}
.fs-table .fs-item td{background:color-mix(in srgb,var(--acc) 4%,transparent);font-size:12.5px}

/* цвета заставки — по последней выбранной теме (data-skin ставит скрипт в <head> до заставки) */
#splash{--sp-acc:#5b8def;--sp-rgb:91,141,239;--sp-tint:200,220,255;--sp-gl:14,20,34;--sp-gl2:8,12,22;--sp-mu:#94a0b8;--sp-bg:#070b14;--sp-bgr:7,11,20;--sp-on:#fff;
  --sp-deep:.12,.22,.45}
html[data-skin="center"] #splash{--sp-acc:#38bdf8;--sp-rgb:56,189,248;--sp-tint:190,230,255;--sp-gl:10,19,36;--sp-gl2:5,10,20;--sp-mu:#8c9ab3;--sp-bg:#050a14;--sp-bgr:5,10,20;
  --sp-on:#04121d;--sp-deep:.04,.24,.40}
html[data-skin="vitrina"] #splash{--sp-acc:#8b7cf6;--sp-rgb:139,124,246;--sp-tint:220,210,255;--sp-gl:24,20,44;--sp-gl2:14,11,28;--sp-mu:#a39dc0;--sp-bg:#0c0a18;--sp-bgr:12,10,24;
  --sp-on:#fff;--sp-deep:.26,.18,.55}
html[data-skin="grafit"] #splash{--sp-acc:#c6f24e;--sp-rgb:198,242,78;--sp-tint:225,235,225;--sp-gl:24,27,25;--sp-gl2:15,17,16;--sp-mu:#9aa19b;--sp-bg:#111312;--sp-bgr:17,19,18;
  --sp-on:#0b0f0a;--sp-deep:.30,.34,.31}
/* ═══ Заставка «Пульт 360» (index.html #splash, splash-fx.js) — стиль сайта, не зависит от темы оформления ═══ */
html.sp-on{overflow:hidden}
#splash{position:fixed;inset:0;z-index:10000;overflow:hidden;background:var(--sp-bg);color:#e9f0e6;font-family:"Onest",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;transition:opacity .6s ease,background-color .5s ease}
#splash.out{opacity:0;pointer-events:none}
#splash.sp-reveal{background:transparent}
#splash.sp-reveal .sp-bg,#splash.sp-reveal .sp-name{opacity:0}
#splash .sp-bg{position:absolute;inset:0;width:100%;height:100%;display:block;transition:opacity .5s ease}
#splash .sp-beams{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transition:opacity .4s}
#splash .sp-beam{fill:none;stroke:rgba(var(--sp-tint),.14);stroke-width:1}
#splash .sp-beam-hl{fill:none;stroke:var(--sp-acc);stroke-width:1.6;stroke-linecap:round;opacity:0}
#splash .sp-ring{position:absolute;will-change:transform;pointer-events:none}
#splash .sp-ring svg{width:100%;height:100%;overflow:visible}
#splash .sp-arc{filter:drop-shadow(0 0 10px rgba(var(--sp-rgb),.5))}
#splash .sp-pct{position:absolute;width:300px;text-align:center;transition:opacity .3s}
#splash .sp-pct b{display:block;font-size:30px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
#splash .sp-pct span{display:block;margin-top:6px;min-height:16px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;letter-spacing:.02em;color:var(--sp-mu)}
#splash .sp-name{position:absolute;left:28px;top:24px;display:flex;align-items:baseline;gap:10px;transition:opacity .4s}
#splash .sp-name b{font-size:19px;font-weight:600;letter-spacing:-.01em}
#splash .sp-name span{font-size:13px;color:var(--sp-mu)}
#splash .sp-src{position:absolute;width:280px;padding:11px 12px 9px;border-radius:16px;border:1px solid rgba(var(--sp-tint),.14);
  background:linear-gradient(180deg,rgba(var(--sp-gl),.62),rgba(var(--sp-gl2),.72));-webkit-backdrop-filter:blur(16px) saturate(135%);backdrop-filter:blur(16px) saturate(135%);
  box-shadow:inset 0 1px 0 rgba(var(--sp-tint),.05);opacity:0;transform:translateX(-20px);transition:opacity .6s,transform .8s cubic-bezier(.16,1,.3,1),border-color .4s}
#splash .sp-src.in{opacity:1;transform:none}
#splash .sp-src.done{border-color:rgba(var(--sp-rgb),.45)}
#splash .sp-src h4{margin:0 0 7px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13.5px;font-weight:600}
#splash .sp-src h4 em{font-style:normal;font-weight:400;color:var(--sp-mu);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px}
#splash .sp-src .st{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;font-weight:400;color:var(--sp-mu);white-space:nowrap}
#splash .sp-src.done .st{color:var(--sp-acc)}
#splash .sp-src table{width:100%;border-collapse:collapse}
#splash .sp-src td{padding:5px 4px;border-top:1px solid rgba(var(--sp-tint),.08)}
#splash .sp-src td.r{text-align:right}
#splash .sp-src td i{display:inline-block;height:6px;border-radius:3px;background:rgba(var(--sp-tint),.16);transition:background .2s}
#splash .sp-src tr.read td{background:rgba(var(--sp-rgb),.08)}
#splash .sp-src tr.read td i{background:rgba(var(--sp-rgb),.7)}
#splash .sp-src tr.sent td i{background:rgba(var(--sp-tint),.28)}
#splash .sp-chip{position:absolute;left:0;top:0;padding:3px 9px;border-radius:999px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;
  background:rgba(var(--sp-rgb),.14);border:1px solid rgba(var(--sp-rgb),.5);color:#e9f0e6;white-space:nowrap;box-shadow:0 0 14px rgba(var(--sp-rgb),.35);pointer-events:none}
#splash.sp-finish .sp-pct,#splash.sp-finish .sp-src,#splash.sp-finish .sp-beams{opacity:0}
#splash.sp-finish .sp-src{transform:scale(.96)}
/* короткий показ (сессия уже видела заставку): только кольцо, без процентов */
#splash.sp-quick .sp-pct b,#splash.sp-quick .sp-sources,#splash.sp-quick .sp-beams{display:none}
#splash.sp-quick .sp-ring svg{animation:spSpin 1.2s linear infinite}
@keyframes spSpin{to{transform:rotate(360deg)}}
/* вход — стеклянная форма под кольцом */
#splash #login-form{position:absolute;width:340px;padding:22px;border-radius:18px;border:1px solid rgba(var(--sp-tint),.14);
  background:linear-gradient(180deg,rgba(var(--sp-gl),.66),rgba(var(--sp-gl2),.78));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#e9f0e6}
#splash #login-form h2{margin:0 0 6px;font-size:20px;font-weight:600;letter-spacing:-.01em;color:#e9f0e6}
#splash #login-form .io-label{display:block;margin-top:12px;font-size:12px;color:var(--sp-mu)}
#splash #login-form input{width:100%;box-sizing:border-box;margin-top:5px;padding:11px 13px;border-radius:10px;border:1px solid rgba(var(--sp-tint),.14);
  background:rgba(var(--sp-bgr),.6);color:#e9f0e6;font:inherit;font-size:14px}
#splash #login-form input:focus{outline:2px solid var(--sp-acc);outline-offset:1px}
#splash #login-form button{margin-top:16px;width:100%;height:46px;border:0;border-radius:999px;background:var(--sp-acc);color:var(--sp-on);font:600 15px "Onest",sans-serif;cursor:pointer}
#splash #login-form button:disabled{opacity:.6}
#splash #login-form .err{color:#e8a25a}
#splash.sp-login .sp-pct b{display:none}
#splash #login-form{transition:opacity .45s ease,filter .45s ease,transform .45s ease}
#splash #login-form.sp-form-out{opacity:0;filter:blur(8px);transform:translateY(10px) scale(.97);pointer-events:none}
#splash.sp-moving .sp-pct{opacity:0}
@media (prefers-reduced-motion:reduce){#splash .sp-src{transition:none}#splash.sp-quick .sp-ring svg{animation:none}}
/* знак «Пульт 360» в меню — в цвет темы (как кольцо заставки); в светлом варианте — глубже, чтобы читался */
.brand-mark .bm-track{stroke:color-mix(in srgb,currentColor 18%,transparent)}
.brand-mark .bm-arc{stroke:var(--mark)}
.brand-mark .bm-dot{fill:var(--mark)}
html{--mark:#2f5bd3}
html[data-mode="dark"]{--mark:#5b8def}
html[data-skin="center"]{--mark:#38bdf8}
html[data-skin="vitrina"]{--mark:#5b4ee8}
html[data-skin="vitrina"][data-mode="dark"]{--mark:#8b7cf6}
html[data-skin="grafit"]{--mark:#7fae14}
html[data-skin="grafit"][data-mode="dark"]{--mark:#c6f24e}

/* ═══ Кнопка версии и окно «Что нового» ═══ */
button.app-ver{cursor:pointer;font-family:inherit;line-height:1.6}
button.app-ver:hover{border-color:var(--acc);color:var(--acc)}
.changelog{width:min(640px,calc(100vw - 32px));max-height:min(80vh,760px);padding:0;border:1px solid var(--bd);
  border-radius:14px;background:var(--sur);color:var(--txt);box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}
.changelog[open]{display:flex;flex-direction:column}
.changelog::backdrop{background:rgba(8,14,32,.55);backdrop-filter:blur(2px)}
.cl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--ln)}
.cl-head h2{margin:0;font-size:17px}
.cl-close{background:transparent;border:0;color:var(--mu);font-size:16px;padding:4px 8px;cursor:pointer;border-radius:8px}
.cl-close:hover{background:var(--sur2);color:var(--txt)}
.cl-body{overflow-y:auto;padding:6px 20px 18px}
.cl-item{padding:14px 0;border-bottom:1px solid var(--ln)}
.cl-item:last-child{border-bottom:0}
.cl-meta{display:flex;gap:10px;align-items:center;font-size:12px}
.cl-v{font-weight:700;color:var(--acc);background:color-mix(in srgb,var(--acc) 12%,transparent);border-radius:20px;padding:1px 9px}
.cl-new .cl-v{background:var(--acc);color:#fff}
.cl-item h3{margin:6px 0 4px;font-size:15px;text-transform:none;letter-spacing:0;color:var(--txt)}
.cl-item ul{margin:0;padding-left:18px;font-size:13.5px;line-height:1.5;color:var(--txt)}
.cl-item li+li{margin-top:2px}

/* Маркетинг → Обзор: переключатель периода лидов в заголовке блока */
.mk-leads .panel-h h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.tabpane[data-pane="marketing/overview"] > .dash:not(:empty) + .dash:not(:empty){margin-top:16px}

/* Сервис → Сравнение дней */
.cmp-pick{padding:12px 16px}
.cmp-pick select{min-width:0;width:auto}
.cmp-pick .io-label{min-width:0}
table.cmp td:first-child{min-width:180px}

/* ═══ Демо-режим (demo.js): кнопка с глазом внизу меню + плашка сверху ═══ */
.demo-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;box-sizing:border-box;
  padding:7px 10px;border-radius:8px;border:1px dashed var(--bd);background:transparent;color:var(--mu);
  font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.demo-toggle:hover{border-color:var(--acc);color:var(--acc)}
.demo-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.demo-toggle .demo-slash{display:none}
:root:not([data-demo]) .demo-toggle .demo-slash{display:block}
:root[data-demo] .demo-toggle{border-style:solid;border-color:#d97706;background:rgba(245,158,11,.14);color:#b45309}
html[data-mode="dark"][data-demo] .demo-toggle{color:#fbbf24}
html[data-theme="shtab"] .nav-foot .demo-toggle,html[data-theme="pult"] .nav-foot .demo-toggle{grid-column:1/-1;color:#aab4c8;border-color:rgba(255,255,255,.22)}
html[data-theme="shtab"][data-demo] .nav-foot .demo-toggle,html[data-theme="pult"][data-demo] .nav-foot .demo-toggle{color:#fbbf24;border-color:#d97706;background:rgba(245,158,11,.16)}
/* в демо поля ввода и сохранение — неактивны на вид (запрет — на уровне запросов) */
:root[data-demo] .content input:not([type=file]),:root[data-demo] .content select:not(#cmp-a):not(#cmp-b):not(#out-day):not(#fin-svc-day):not(#snapshots){opacity:.75}
:root[data-demo] a[href="/report"]{display:none}     /* отчёт руководителю — с настоящими цифрами (собирает сервер) */
.fs-table .fs-more-toggle{cursor:pointer}
.fs-table .fs-more-toggle td{background:color-mix(in srgb,var(--acc) 6%,transparent);color:var(--acc)}
.fs-table .fs-more-toggle:hover td{background:color-mix(in srgb,var(--acc) 12%,transparent)}

/* ═══ Права по ролям: экран пользователей, режим «посмотреть как» ═══ */
.acc-cell{max-width:420px}
.acc-chip{display:inline-block;font-size:11.5px;padding:1px 8px;margin:1px 3px 1px 0;border-radius:20px;border:1px solid var(--bd);white-space:nowrap}
.acc-chip.work{border-color:var(--acc);color:var(--acc);font-weight:600}
.acc-chip.view{color:var(--mu)}
.acc-chip.flag{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.35)}
.acc-chip.nosum,.acc-chip.custom{background:rgba(245,158,11,.12);border-color:#f59e0b;color:#b45309}
.users-tbl tr.editing td{background:color-mix(in srgb,var(--acc) 7%,transparent)}
.user-editor{margin-top:14px;display:grid;gap:10px}
.acc-matrix{max-width:640px}
.acc-matrix td.c,.acc-matrix th.c{text-align:center;width:90px}
.acc-flags{gap:16px}
.viewas-bar{margin:0 0 14px;padding:10px 14px;border-radius:10px;border:1px solid var(--acc);
  background:color-mix(in srgb,var(--acc) 10%,transparent);font-size:13px}
.viewas-bar a{font-weight:600;margin-left:6px}
:root[data-noreport] a[href="/report"],:root[data-noreport] #btn-report{display:none!important}

/* Сервис → Выработка: цех → исполнители → заказ-наряды */
.out-table .out-l1{cursor:pointer}
.out-table .out-l1 td{background:color-mix(in srgb,var(--acc) 9%,transparent);border-top:1px solid var(--bd)}
.out-table .out-l1:hover td{background:color-mix(in srgb,var(--acc) 15%,transparent)}
.out-table .out-l2{cursor:pointer}
.out-table .out-l2 td:nth-child(2){padding-left:22px}
.out-table .out-l2:hover td{background:color-mix(in srgb,var(--acc) 6%,transparent)}
.out-table .out-l3 td{font-size:12.5px;background:color-mix(in srgb,var(--acc) 3%,transparent)}
.out-table .out-l3 td:nth-child(2){padding-left:40px}
#out-panel .panel-h span{display:flex;align-items:center;gap:10px}

/* ═══ «Отправить отчёт»: кнопка, окно выбора разделов, печать / PDF ═══ */
.topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.btn-export{display:inline-flex;align-items:center;gap:7px;font:inherit;font-weight:600;font-size:13px;cursor:pointer;
  padding:8px 14px;border-radius:9px;border:1px solid var(--acc);background:var(--acc);color:#fff}
.btn-export:hover{filter:brightness(1.08)}
.btn-export svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.export-dlg{width:min(460px,calc(100vw - 32px))}
.export-secs{display:grid;gap:8px;margin:12px 0 16px}
.export-secs .chk{font-size:14px}
.export-btns{gap:10px}
#print-root{display:none}
.pdf-tip{display:none}
@media print{
  @page{size:A4 landscape;margin:10mm}
  body.printing{background:#fff!important}
  body.printing > *:not(#print-root){display:none!important}
  body.printing #print-root{display:block;color:#111}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #print-root .pr-head{display:flex;justify-content:space-between;font-size:11px;color:#555;border-bottom:1px solid #ccc;padding-bottom:6px;margin-bottom:10px}
  #print-root .pr-sec{break-before:page}
  #print-root .pr-sec:first-of-type{break-before:auto}
  #print-root .pr-title{font-size:18px;margin:0 0 10px}
  #print-root button,#print-root select,#print-root input,#print-root .seg,#print-root .kpi-go,#print-root .stale-bar{display:none!important}
  #print-root .tw{overflow:visible!important}
  #print-root table{font-size:10.5px}
  #print-root .panel,#print-root .kpi{break-inside:avoid;box-shadow:none!important}
  #print-root .pr-chart{max-width:100%}
  #print-root a{color:inherit;text-decoration:none}
}

/* Пространство без доступа — в меню остаётся, но серое и не нажимается (все оформления) */
.nav-rail .space.locked,.nav-rail .space:disabled{opacity:.38;filter:grayscale(1);cursor:not-allowed;pointer-events:auto}
.nav-rail .space.locked:hover{transform:none;box-shadow:none}
html[data-theme="base"] .nav-rail .space.locked:hover{color:var(--mu)}
html[data-theme="shtab"] .nav-rail .space.locked:hover{color:#8f9bb3;background:transparent}
.force-theme{margin-top:14px;padding-top:12px;border-top:1px dashed var(--ln)}
.wip-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* название «Пульт 360» в меню — как на заставке: шрифт Unbounded, «360» — градиент пространств */
.nav-brand b.app-name{font-family:"Unbounded","Onest",sans-serif;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
.app-name span{background:linear-gradient(90deg,#3b82f6,#22c55e 55%,#f59e0b);-webkit-background-clip:text;background-clip:text;color:transparent}
/* «Клиенты (LTV)»: три графика в ряд (SVG, цвета — из переменных оформления) */
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:1100px){.grid3{grid-template-columns:1fr}}

.ch-key{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 8px;vertical-align:-1px}
.ch-key.ch-ok{background:#1baf7a}.ch-key.ch-warn{background:#eb6834}
.ltv-chip{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:0 0 10px;border-radius:10px;
  background:color-mix(in srgb,#eb6834 12%,transparent);font-size:13px}
/* «Предложения поставщиков» */
label.btn{display:inline-flex;align-items:center;background:var(--ts);color:#fff;border-radius:8px;cursor:pointer;
  padding:6px 12px;font-size:12.5px;font-weight:600}
label.btn.disabled{opacity:.5;cursor:not-allowed}
.sup-table td{vertical-align:top}
.sup-cup{width:14px;height:14px;vertical-align:-2px;margin-right:2px}
.sup-win-b{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:600;color:#a16207;cursor:help}
html[data-mode="dark"] .sup-win-b{color:#facc15}
.sup-filters{gap:16px;padding:2px 14px 10px;flex-wrap:wrap}
.sup-acts{margin-top:6px;gap:6px;flex-wrap:wrap;align-items:center}
.sup-acts select{max-width:380px;font-size:12px}
.sup-table td.sup-our-c{background:color-mix(in srgb,var(--acc) 6%,transparent)}
.sup-types{padding:0 14px 8px;overflow-x:auto}
.sup-types .seg{flex-wrap:wrap}
.sup-table .sup-sec th{text-align:left;font-size:14px;padding-top:14px;background:color-mix(in srgb,var(--acc) 12%,transparent)}
.sup-params .row{margin-bottom:10px}
.sup-compact{font-size:12px}
.sup-compact td,.sup-compact th{padding-top:4px;padding-bottom:4px;white-space:nowrap}
.sup-compact td.sup-lab{max-width:520px;overflow:hidden;text-overflow:ellipsis}
.sup-compact .fs-item td{font-size:11.5px}
.sup-compact .sup-sec th{font-size:12.5px;padding-top:8px}
.sup-compact sup{font-size:9px;margin-left:1px;line-height:0}
.sup-av{display:inline-block;font-size:10.5px;padding:0 5px;border-radius:8px;color:var(--mu);background:color-mix(in srgb,var(--acc) 8%,transparent);margin-left:4px}
.sup-av.up{background:#e3f3ea;color:#166534}
html[data-mode="dark"] .sup-av.up{background:#12301f;color:#6ee7a0}
.sup-flag{width:15px;height:10px;vertical-align:-1px;margin-right:3px;border-radius:1px}
.sup-av .sup-flag{margin-left:-1px}
.sup-truck{width:30px;height:15px;vertical-align:-3px;margin:0 4px 0 2px;fill:currentColor;color:var(--acc)}
.sup-truck .sup-win{fill:var(--sur)}
.sup-truck .sup-wh{stroke:var(--sur);stroke-width:1.6}
.seg button .sup-truck{color:inherit;opacity:.85}
.sup-sec .sup-truck{width:34px;height:17px}
.spm-flist{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px;margin:4px 0 12px;max-height:260px;overflow:auto;padding:8px;border:1px solid var(--bd);border-radius:8px}
.sup-filters select{font-size:12px;padding:2px 6px}
.sup-filters .chk .sup-cup{margin-right:0}
.sup-pc .sup-price{display:inline-block;min-width:74px;text-align:right;margin-left:6px;font-variant-numeric:tabular-nums}
.sup-pc .sup-av,.sup-pc .sup-win-b{margin-left:6px}
.sup-var{font-size:10px;color:var(--mu);margin-left:5px}
.sup-star{color:var(--mu);margin-left:4px}
.sup-our-c b{font-variant-numeric:tabular-nums}

.ltv-sort{cursor:pointer;user-select:none;white-space:nowrap}
.ltv-sort:hover,.ltv-sort.on{color:var(--acc)}
.ltv-arr{font-size:10px}
/* Поступления · сервис: плитка «Ожидаем поступлений» с переключателем периода */
.cal-tile .cal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
#cal-tile .cal-seg{flex:none;margin:-4px -6px 0 0;padding:2px;gap:0}
#cal-tile .cal-seg button{padding:1px 7px;font-size:10.5px;line-height:1.5;min-height:0}
.cal-tile .cal-over{color:#c2410c;font-weight:600}
html[data-mode="dark"] .cal-tile .cal-over{color:#f59e6b}
.sup-dyn{font-size:10px;margin-left:4px;font-weight:700}
.sup-dyn.good{color:#16a34a}.sup-dyn.bad{color:#dc2626}.sup-dyn.new{color:var(--acc);font-weight:600}
html[data-mode="dark"] .sup-dyn.good{color:#4ade80}html[data-mode="dark"] .sup-dyn.bad{color:#f87171}
.sup-chg{border-top:1px solid var(--bd);padding:8px 2px}
.sup-chg summary{cursor:pointer;font-size:13px}
.sup-chg-body{padding:6px 0 4px 16px;overflow-x:auto}
.sup-chg-body h4{margin:10px 0 4px;font-size:12.5px}
.sup-chg-body table{width:auto;min-width:60%}
.sup-chg-list{font-size:12px;line-height:1.7}
/* Подсветка нового с прошлого захода (0.13.5) */
tr.is-new > td{background:color-mix(in srgb,#f59e0b 13%,transparent)!important}
tr.is-new > td:first-child{box-shadow:inset 3px 0 #f59e0b}
.brow.is-new{background:color-mix(in srgb,#f59e0b 13%,transparent);border-radius:6px}
.fresh-tag{display:inline-block;margin-right:6px;padding:0 6px;border-radius:8px;background:#f59e0b;color:#fff;
  font-size:10.5px;font-weight:700;line-height:17px;vertical-align:1px;white-space:nowrap}
.fresh-tag.fresh-grp{background:transparent;color:#b45309;box-shadow:inset 0 0 0 1px #f59e0b}
html[data-mode="dark"] .fresh-tag.fresh-grp{color:#fbbf24}
.fresh-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;
  border-radius:12px;background:color-mix(in srgb,#f59e0b 12%,var(--sur,#fff));border:1px solid color-mix(in srgb,#f59e0b 45%,transparent);font-size:13.5px}
/* Логистика и Производство — каркас (0.13.6) */
.src-plan{margin:0;padding:4px 0 4px 20px;line-height:1.8}
tr.is-new.flash > td{animation:freshflash 1.4s ease-out}
@keyframes freshflash{0%{background:color-mix(in srgb,#f59e0b 45%,transparent)}100%{background:color-mix(in srgb,#f59e0b 13%,transparent)}}
.src-cert{margin:8px 0 4px}.src-cert summary{cursor:pointer;font-size:13px}.src-cert .hint{margin:6px 0}
.wip-client{min-width:190px}

/* Продажи: период итогов в шапке (0.14.8) и плашка «месяц / квартал закрыт» */
.per-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.per-bar .per-lbl{min-width:118px;text-align:center;font-weight:700;white-space:nowrap}
.per-bar .per-nav{min-width:34px;font-size:16px;line-height:1;padding:5px 8px}
.per-bar .per-cur{font-size:12px}
.per-closed{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;
  border-radius:12px;background:color-mix(in srgb,var(--acc) 10%,var(--sur));border:1px solid color-mix(in srgb,var(--acc) 35%,transparent);line-height:1.5}
.per-closed-b{display:flex;gap:6px;flex-wrap:wrap}
@media print{.per-closed,.per-bar{display:none!important}}
/* переключатель на страницах «состояния на сейчас» — на месте, но неактивный (0.15.0) */
.per-bar.passive{opacity:.55;cursor:help}
.per-bar.passive .seg button{cursor:help}
.per-bar.passive .per-lbl{font-weight:600;min-width:0;color:var(--mu)}

/* ═════ Сервис → Запчасти (0.15.2): графики React + framer-motion; цвета — от темы ═════ */
#dash-parts{--p1:#2563eb;--p2:#f59e0b;--p3:#8b5cf6;--p4:#10b981}
html[data-mode="dark"] #dash-parts{--p1:#60a5fa;--p2:#fbbf24;--p3:#a78bfa;--p4:#34d399}
#dash-parts .grid2.pt-g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
@media (max-width:1100px){#dash-parts .grid2.pt-g21{grid-template-columns:1fr}}

.pt-s1{fill:var(--p1);stroke:var(--p1)}.pt-s2{fill:var(--p2);stroke:var(--p2)}.pt-s3{fill:var(--p3);stroke:var(--p3)}.pt-s4{fill:var(--p4);stroke:var(--p4)}
rect.pt-s1,rect.pt-s2{stroke:none}

.pt-key{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:currentColor}
.pt-key.pt-s1{background:var(--p1)}.pt-key.pt-s2{background:var(--p2)}.pt-key.pt-s3{background:var(--p3)}.pt-key.pt-s4{background:var(--p4)}
.pt-key.dash{background:repeating-linear-gradient(90deg,var(--p3) 0 4px,transparent 4px 7px);height:3px;vertical-align:3px}
.pt-legend{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--mu)}
.pt-legend.row{flex-direction:row;flex-wrap:wrap;gap:14px;margin-top:6px}
.pt-legend>div{display:flex;align-items:center;gap:4px}
.pt-legend b{margin-left:auto;color:var(--txt);padding-left:10px}.pt-legend span{min-width:0;text-align:right;white-space:nowrap}
.pt-donut{grid-template-columns:auto minmax(0,1fr)}
.pt-legend>div.on{color:var(--txt)}
.pt-donut{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:16px;position:relative}
.pt-donut svg circle{transition:filter .2s}.pt-ring-tr{stroke:var(--ln,#eee)}
.pt-donut circle.pt-s1,.pt-donut circle.pt-s2{fill:none}
.pt-donut-c{position:absolute;left:0;top:0;width:190px;height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.pt-donut-c b{font-size:24px}.pt-donut-c span{font-size:12px;color:var(--mu)}
.pt-ph-note{margin:6px 0;padding:6px 10px;border-radius:8px;font-size:12px;color:var(--mu);background:color-mix(in srgb,var(--p3) 8%,transparent)}
.pt-soon{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;color:var(--p3);
  background:color-mix(in srgb,var(--p3) 12%,transparent);letter-spacing:.02em}
.pt-soon.big{font-size:16px;padding:4px 14px}
/* рейтинг менеджеров */
.pt-rating{display:flex;flex-direction:column;gap:2px}
.pt-mrow{display:grid;grid-template-columns:28px minmax(180px,1.4fr) minmax(0,2fr) 130px;gap:12px;align-items:center;width:100%;
  padding:8px 10px;border:0;border-radius:10px;background:transparent;text-align:left;cursor:pointer;color:var(--txt);font:inherit}
.pt-mrow:hover,.pt-mrow.on{background:color-mix(in srgb,var(--p1) 7%,transparent)}
.pt-mrow .rk{font-variant-numeric:tabular-nums;color:var(--mu);font-size:12px}
.pt-mrow .nm{font-weight:600;display:flex;flex-direction:column}.pt-mrow .nm small{font-weight:400;color:var(--mu);font-size:11.5px}
.pt-mrow .am{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.pt-track{height:8px;border-radius:4px;background:var(--ln,#eee);overflow:hidden}
.pt-track i{display:block;height:100%;border-radius:4px;background:var(--p1)}
.pt-track i.ph{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--p3) 30%,transparent) 0 8px,transparent 8px 14px)}
.pt-mcard{overflow:hidden}
.pt-mcard-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 200px;gap:18px;padding:10px 12px 14px 50px}
.pt-sub{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mu);margin-bottom:6px}
.pt-spark{display:flex;align-items:flex-end;gap:2px;height:70px}
.pt-spark i{flex:1;min-width:2px;border-radius:2px 2px 0 0;background:var(--p1);opacity:.8}
.pt-crow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:baseline;font-size:12.5px;padding:2px 0}
.pt-crow b,.pt-crow em{white-space:nowrap;text-align:right}
.pt-crow .pt-cm{font-style:normal;min-width:92px}.pt-crow .pt-cm:not(.down){color:var(--mu)}.pt-crow .pt-cm.none{opacity:.6}
.pt-crow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-mstats{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12.5px}
.pt-mstats span{display:block;color:var(--mu);font-size:11.5px}
/* остатки по складам */
.pt-tree{position:relative;overflow:hidden}
.pt-cell{position:absolute;border:0;border-radius:8px;padding:8px;text-align:left;color:#fff;cursor:pointer;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;font:inherit}
.pt-cell b{font-size:12.5px;line-height:1.2}.pt-cell span{font-size:11.5px;opacity:.9}
.pt-cell.on{outline:3px solid var(--txt);outline-offset:-3px}
.pt-cell.c0,.pt-layer.c0,.pt-key.c0{background:#2563eb;fill:#2563eb}.pt-cell.c1,.pt-layer.c1,.pt-key.c1{background:#0891b2;fill:#0891b2}
.pt-cell.c2,.pt-layer.c2,.pt-key.c2{background:#d97706;fill:#d97706}.pt-cell.c3,.pt-layer.c3,.pt-key.c3{background:#7c3aed;fill:#7c3aed}
.pt-cell.c4,.pt-layer.c4,.pt-key.c4{background:#059669;fill:#059669}.pt-cell.c5,.pt-layer.c5,.pt-key.c5{background:#64748b;fill:#64748b}
.pt-layer{opacity:.85}
/* заглушки следующего этапа */
.pt-ph{border:1px dashed var(--bd,#e5e7eb);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.pt-ph span{color:var(--mu);font-size:11.5px}
.pt-ph-art{height:64px;display:flex;align-items:flex-end;gap:4px;margin-bottom:6px}
.pt-ph-art i{flex:1;border-radius:3px 3px 0 0;background:color-mix(in srgb,var(--p3) 18%,transparent);animation:ptpulse 1.6s ease-in-out infinite}
.pt-ph-art.bars i:nth-child(odd){height:60%}.pt-ph-art.bars i:nth-child(even){height:35%}.pt-ph-art.bars i:nth-child(3n){height:85%}
.pt-ph-art.area i{height:50%;border-radius:40px 40px 0 0}.pt-ph-art.area i:nth-child(2){height:80%}
@keyframes ptpulse{0%,100%{opacity:.45}50%{opacity:1}}
/* редактор складов */
.pt-sklady{position:absolute;right:0;top:100%;z-index:20;width:min(560px,90vw);margin-top:6px;padding:12px;border-radius:12px;
  background:var(--sur,#fff);border:1px solid var(--bd,#e5e7eb);box-shadow:0 12px 32px rgba(0,0,0,.15)}
.pt-sklady-list{max-height:320px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;margin:8px 0;font-size:12.5px}
#dash-parts .strip{position:relative}
.pt-track i.neg{background:#dc2626}
.pt-whm{display:flex;flex-direction:column;gap:6px}
.pt-whm-r{display:grid;grid-template-columns:minmax(160px,1.3fr) minmax(0,2fr) 120px minmax(150px,1fr);gap:12px;align-items:center;font-size:13px}
.pt-whm-r b{text-align:right;font-variant-numeric:tabular-nums}
/* Запчасти: раскрывающаяся плитка «Маржа» (0.15.5) */
.pt-mg-slot{position:relative;min-width:0}
.pt-mg-slot>.pt-mg{height:100%;cursor:pointer}
.pt-mg-pop{cursor:pointer}
.pt-mg-in{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--ln)}
.pt-mg-part{min-width:0}
.pt-mg-v{font-size:22px;font-weight:800;margin:2px 0 6px}
.pt-mg-row{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:2px 0}
.pt-mg-f{grid-column:1/-1;font-size:12px}
@media (max-width:760px){.pt-mg-in{grid-template-columns:1fr}}
.per-bar .vat-seg,.vat-seg{margin-left:8px}
/* Предложения поставщиков: плитка «Прайсы» — файлы поставщиков (0.16.3) */
.sup-files-in{margin-top:12px;padding-top:12px;border-top:1px solid var(--ln);display:grid;gap:12px}
.sup-file{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:4px 0;font-size:13px}
.sup-file .pill{margin-left:6px}
.sup-file-n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sup-file-n small{display:block}

@media (max-width:760px){.sup-file{grid-template-columns:1fr auto}.sup-file-n{grid-column:1/-1}}
/* «Граница КНР» — плашка со столбом (0.16.6) */
.sup-av.bd{background:#fdf3d8;color:var(--mu)}                 /* текст — как у «заказ», не как «лучшая цена» */
html[data-mode="dark"] .sup-av.bd{background:#3a2c0a;color:var(--mu)}
.sup-post{width:9px;height:13px;vertical-align:-2px;margin-right:3px}
.sup-av .sup-post{margin-left:-1px}
.sup-filters .sup-post{margin:0 3px 0 2px}
/* ── Зебра во всех таблицах программы (0.17.1, вариант 2 — выбор пользователя 02.10.2026) ─────────────
   Строки через одну чуть темнее (в тёмной теме — чуть светлее): полупрозрачная заливка от цвета текста,
   поэтому подходит к любой теме и любому фону панели. Приоритет — нулевой (:where), так что подсветка
   нового (is-new), «горячие» и «тепловые» строки, наведение и заголовки разделов её перекрывают.
   Скрытые строки (hidden) и строки внутри групп не сбивают чередование; в таблицах с группами
   (поставщики, клиенты, склад) чередуются заголовки групп. Тепловая карта Маркетинга — без зебры. */
:root{--zebra:color-mix(in srgb,var(--txt,#1e1e1e) 4.5%,transparent)}
:where(table:not(.mki-ht):not(.no-zebra) > tbody > tr:nth-child(even of :not([hidden], .fs-item, .fs-head))) > td,
:where(table:not(.mki-ht):not(.no-zebra) > tbody.fs-grp:nth-child(even of .fs-grp) > tr.fs-head) > td{background:var(--zebra)}
/* «Изменения»: строки окрашены цветом вида изменения — зебра оттенком того же цвета */
html .chg .dt tbody tr:nth-child(even of :not([hidden])) td{background:color-mix(in oklab,var(--cc) 15%,var(--sur))}
/* строки, уже окрашенные по смыслу («тепловые» сделки, просроченные ЗН): зебра — лёгкой вуалью поверх их цвета */
.dt tr.hot:nth-child(even of :not([hidden])) > td,
tr.heat:nth-child(even of :not([hidden])) > td{background-image:linear-gradient(var(--zebra),var(--zebra))}

/* ── 0.17.8: графики динамики в плитках «Сервиса» (все темы) ─────────────────────────────
   Цвет — по смыслу показателя (рост просрочки — красный, рост выручки — зелёный), не по знаку. */

.spk-d{align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:11.5px;font-weight:700;
  padding:2px 7px;border-radius:999px;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent);font-variant-numeric:tabular-nums}
.spk-d small{font-weight:500;opacity:.78;font-size:11px}
.spk-d.muted{color:var(--mu);background:transparent;padding-left:0;font-weight:500}

/* яркий фон главной плитки (Штаб, Пульт, Строгий): линия белая, плашка — белая с цветным текстом */

:is(html[data-theme="pult"],html[data-theme="shtab"],html[data-skin="strog"]) .kpi.hero .spk-d{background:rgba(255,255,255,.94);color:color-mix(in srgb,var(--c) 80%,#000)}
/* «Центр управления»: главная плитка тёмная — линия и плашка цветные (в «Витрине» фон яркий — белые, как выше) */

html[data-skin="center"] .kpi.hero .spk-d{background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c)}
/* плитки одного ряда: подписи, числа, пояснения и графики — на одном уровне (subgrid) */

.kpis.k6 .spk-d{font-size:10.5px;padding:2px 6px;gap:3px}.kpis.k6 .spk-d small{font-size:10px}
/* ── 0.18.0: график динамики — в правом углу плитки, справа от значения (плитка не растёт); плашка
   изменения — в начале подписи. Линия «прорисовывается» при открытии, заливка проявляется следом. */
.kpi-v.with-trend{display:flex;align-items:center;gap:10px;min-width:0}
.kpi-v.with-trend>.kpi-vv{flex:0 0 auto;white-space:nowrap}
.kpi-trend{flex:1 1 auto;display:flex;justify-content:flex-end;min-width:44px;height:30px;margin-left:auto}
.spk-c{--c:#16a34a;display:block;width:100%;max-width:132px;height:30px}
.spk-c.bad{--c:#dc2626}.spk-c.flat{--c:#94a3b8}
:is(html[data-mode="dark"],html[data-skin="center"]) .spk-c{--c:#34d399}
:is(html[data-mode="dark"],html[data-skin="center"]) .spk-c.bad{--c:#f87171}
:is(html[data-mode="dark"],html[data-skin="center"]) .spk-c.flat{--c:#7d8ba3}
.spk-c svg{display:block;width:100%;height:100%;overflow:visible}
.spk-c .ln{fill:none;stroke:var(--spk-ln,var(--c));stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.spk-c .ln.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:spk-draw 1.1s cubic-bezier(.16,1,.3,1) .25s forwards}
.spk-c .ln.dash{stroke-dasharray:3 3;opacity:.8}
.spk-c .ar{fill:var(--spk-ln,var(--c));fill-opacity:.16;opacity:0;animation:spk-fade .6s ease .9s forwards}
.spk-c .dot{fill:var(--spk-ln,var(--c))}
.spk-c .pt{fill:transparent}.spk-c .pt:hover{fill:var(--spk-ln,var(--c))}
@keyframes spk-draw{to{stroke-dashoffset:0}}
@keyframes spk-fade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.spk-c .ln.draw{animation:none;stroke-dashoffset:0}.spk-c .ar{animation:none;opacity:1}}
html[data-skin="center"] .spk-c .ln{filter:drop-shadow(0 0 4px var(--c))}
html[data-skin="center"] .spk-c .ar,html[data-skin="vitrina"] .spk-c .ar{fill-opacity:.24}
:is(html[data-theme="pult"],html[data-theme="shtab"],html[data-skin="strog"]) .kpi.hero .spk-c{--spk-ln:rgba(255,255,255,.95)}
html[data-skin="center"] .kpi.hero .spk-c{--spk-ln:var(--c)}
.kpi-s>.spk-d{display:inline-flex;vertical-align:1px;font-size:10.5px;padding:1px 6px;gap:3px;margin-right:2px}
.spk-d.good{--c:#16a34a}.spk-d.bad{--c:#dc2626}.spk-d.flat{--c:#94a3b8}
:is(html[data-mode="dark"],html[data-skin="center"]) .spk-d.good{--c:#34d399}
:is(html[data-mode="dark"],html[data-skin="center"]) .spk-d.bad{--c:#f87171}
:is(html[data-mode="dark"],html[data-skin="center"]) .spk-d.flat{--c:#7d8ba3}
.kpi.kpi-link.on{box-shadow:0 0 0 2px var(--acc)}
.wip-pct{display:inline-flex;align-items:center;gap:6px}
.wip-pct .bar{display:inline-block;width:42px;height:5px;border-radius:3px;background:color-mix(in srgb,var(--txt) 10%,transparent);overflow:hidden}
.wip-pct .bar i{display:block;height:100%;background:var(--acc);border-radius:3px}
/* Финансы → Обзор (0.19.1): направления поступлений — продажа ТС, запчасти, сервис */
.fs-share{display:flex;height:14px;border-radius:7px;overflow:hidden;gap:2px;margin:4px 0 14px;background:color-mix(in srgb,var(--txt) 6%,transparent)}
.fs-share i{display:block;min-width:2px}
.fs-c1{--fc:#2563eb}.fs-c2{--fc:#f59e0b}.fs-c3{--fc:#0d9488}.fs-c4{--fc:#7c3aed}
:is(html[data-mode="dark"],html[data-skin="center"]) .fs-c1{--fc:#60a5fa}
:is(html[data-mode="dark"],html[data-skin="center"]) .fs-c2{--fc:#fbbf24}
:is(html[data-mode="dark"],html[data-skin="center"]) .fs-c3{--fc:#2dd4bf}
:is(html[data-mode="dark"],html[data-skin="center"]) .fs-c4{--fc:#a78bfa}
.fs-share i.fs-c1,.fs-share i.fs-c2,.fs-share i.fs-c3,.fs-share i.fs-c4,i.fs-c1,i.fs-c2,i.fs-c3,i.fs-c4{background:var(--fc)}
.dot.fs-c1,.dot.fs-c2,.dot.fs-c3,.dot.fs-c4{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;background:var(--fc)}
tr.fs-cur>td{font-weight:600}
/* Предложения поставщиков: курс юаня, по которому пересчитаны цены (0.19.2) */
.rate-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12.5px;margin-right:8px;
  background:color-mix(in srgb,var(--acc) 10%,var(--sur));border:1px solid color-mix(in srgb,var(--acc) 25%,var(--bd));cursor:help;white-space:nowrap}
.rate-chip .rate-cur{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#de2910;color:#ffde00;font-weight:800;font-size:11px}
.rate-chip b{font-variant-numeric:tabular-nums}.rate-chip small{color:var(--mu)}

/* Запчасти: неликвиды, оборачиваемость, ABC (0.19.2) */
.pt-dead-sum{margin:2px 0 10px;font-size:14px}
.pt-abc{display:flex;flex-direction:column;gap:10px}
.pt-abc-r{display:grid;grid-template-columns:34px minmax(0,1.3fr) minmax(0,1fr) auto;align-items:center;gap:12px}
.pt-abc-k{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:800;background:var(--sur2)}
.pt-abc-l small{display:block;color:var(--mu);font-size:12px}
.pt-abc-r.abc-a .pt-abc-k,.pill.abc-a{background:#e3f3ea;color:#166534}
.pt-abc-r.abc-b .pt-abc-k,.pill.abc-b{background:#e0ecfb;color:#1e4f8f}
.pt-abc-r.abc-c .pt-abc-k,.pill.abc-c{background:#fdf1d8;color:#92400e}
.pt-abc-r.abc-n .pt-abc-k{background:#fbe9e6;color:#9f1d1d}
.pt-abc-r.abc-n .bar i{background:#d9534f}
html[data-mode="dark"] .pt-abc-r.abc-a .pt-abc-k,html[data-mode="dark"] .pill.abc-a{background:#12301f;color:#6ee7a0}
html[data-mode="dark"] .pt-abc-r.abc-b .pt-abc-k,html[data-mode="dark"] .pill.abc-b{background:#14284a;color:#93c5fd}
html[data-mode="dark"] .pt-abc-r.abc-c .pt-abc-k,html[data-mode="dark"] .pill.abc-c{background:#3a2a10;color:#fcd34d}
html[data-mode="dark"] .pt-abc-r.abc-n .pt-abc-k{background:#3a1d1d;color:#fca5a5}
@media (max-width:700px){.pt-abc-r{grid-template-columns:30px minmax(0,1fr) auto}.pt-abc-r .bar{display:none}}

/* Запчасти: дефицит под заказ-наряды (0.19.4) */
.pt-sh-zn{font-size:12.5px}
.pt-sh-zn span{display:inline-block;margin:0 6px 2px 0;white-space:nowrap}
.pt-sh-zn span[title]{padding:1px 7px;border-radius:6px;background:var(--sur2)}

/* Переход из «Сегодня» с фильтром (0.20.8): найденная строка / блок мигает цветом темы; плашка фильтра; нажимаемые строки */
@keyframes focusflash{0%{box-shadow:0 0 0 3px var(--acc);background-color:color-mix(in srgb,var(--acc) 22%,transparent)}
  100%{box-shadow:0 0 0 0 transparent;background-color:transparent}}
.focus-flash{animation:focusflash 2.4s ease-out;border-radius:8px}
tr.focus-flash > td{animation:focusflash 2.4s ease-out}
tr.focus-flash{animation:none}
.focus-chip{background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--txt);border:1px solid color-mix(in srgb,var(--acc) 45%,transparent);
  border-radius:20px;padding:4px 12px;font-size:12.5px;font-weight:600}
.focus-chip:hover{background:color-mix(in srgb,var(--acc) 24%,transparent)}
.td-more-a{all:unset;cursor:pointer;color:inherit;border-radius:4px}
.td-more-a:hover,.td-more-a:focus-visible{color:var(--txt);text-decoration:underline;text-underline-offset:3px}
button.td-pay{width:100%;background:none;color:inherit;border-radius:0;padding:7px 0;text-align:left;font:inherit;cursor:pointer}
button.td-pay:hover{background:color-mix(in srgb,var(--acc) 7%,transparent)}

/* плашка «программа обновилась» (0.21.3) */
.ver-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ver-bar button{margin-left:auto}

/* ═════════ Лёгкий режим (0.21.21): без анимации и размытия — для слабых компьютеров (`<html data-lite>`) ═════════
   Длительности — 1 мс (а не none): элементы, которые появляются анимацией, сразу приходят в конечное состояние. */
html[data-lite] *,html[data-lite] *::before,html[data-lite] *::after{animation-duration:1ms!important;animation-delay:0s!important;
  animation-iteration-count:1!important;transition-duration:1ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
html[data-lite] *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html[data-lite] body::before,html[data-lite] body::after{display:none!important}

