/* ============ СкладПро, дизайн-система ============ */
:root{
  color-scheme:only light; /* запрет принудительного затемнения браузером */
  --bg:#f4f5f8;
  --surface:#ffffff;
  --surface-2:#f8f9fc;
  --border:#e6e8ef;
  --border-2:#d8dbe6;
  --text:#171923;
  --text-2:#4a5060;
  --muted:#8a90a3;
  --accent:#4f46e5;
  --accent-hover:#4338ca;
  --accent-soft:#eef0ff;
  --accent-soft-2:#e0e4ff;
  --good:#0ca30c; --good-soft:#e8f7e8; --good-text:#0a7d0a;
  --warn:#b97900; --warn-soft:#fdf3dc; --warn-raw:#fab219;
  --serious:#c25a2e; --serious-soft:#fdeee6;
  --crit:#d03b3b; --crit-soft:#fcebeb;
  --info:#1c5cab; --info-soft:#e7f0fb;
  --neutral-soft:#eef0f4; --neutral-text:#5a6072;
  --violet-soft:#f0edfd; --violet-text:#5b48c9;
  --grid:#e1e0d9; --axis:#c3c2b7;
  --s1:#2a78d6; --s2:#1baf7a; --s3:#eda100; --s4:#008300;
  --s5:#4a3aa7; --s6:#e34948; --s7:#e87ba4; --s8:#eb6834;
  --sidebar-bg:#101322;
  --sidebar-text:#9aa1b9;
  --sidebar-head:#5e6580;
  --shadow-sm:0 1px 2px rgba(23,25,35,.05);
  --shadow-md:0 4px 16px rgba(23,25,35,.08);
  --shadow-lg:0 12px 40px rgba(23,25,35,.16);
  --radius:14px; --radius-sm:9px;
  --font:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
}
[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0d0e14;
  --surface:#171923;
  --surface-2:#1e2130;
  --border:#272b3d;
  --border-2:#333850;
  --text:#eef0f6;
  --text-2:#b6bccf;
  --muted:#7c8299;
  --accent:#7c74f2;
  --accent-hover:#928bf5;
  --accent-soft:#26264a;
  --accent-soft-2:#31315e;
  --good:#26c026; --good-soft:#123315; --good-text:#4fd44f;
  --warn:#fab219; --warn-soft:#3a2f0e;
  --serious:#ec835a; --serious-soft:#3a2417;
  --crit:#e66060; --crit-soft:#3c1a1a;
  --info:#5598e7; --info-soft:#152a44;
  --neutral-soft:#252940; --neutral-text:#aab0c5;
  --violet-soft:#282052; --violet-text:#a89bf5;
  --grid:#2c2c2a; --axis:#383835;
  --s1:#3987e5; --s2:#199e70; --s3:#c98500; --s4:#3da53d;
  --s5:#9085e9; --s6:#e66767; --s7:#d55181; --s8:#d95926;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 4px 16px rgba(0,0,0,.4);
  --shadow-lg:0 12px 40px rgba(0,0,0,.55);
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px}
body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow:hidden}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:.92rem;color:var(--text)}
a{color:var(--accent);text-decoration:none}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:6px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-track{background:transparent}

/* ============ Каркас ============ */
.app{display:grid;grid-template-columns:264px 1fr;height:100vh}
.main{display:flex;flex-direction:column;min-width:0;height:100vh}
.content{flex:1;overflow-y:auto;padding:26px 32px 60px;scroll-behavior:smooth}

/* ============ Сайдбар ============ */
.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;height:100vh;overflow:hidden}
.side-logo{display:flex;align-items:center;gap:11px;padding:20px 20px 16px;flex-shrink:0}
.side-logo .mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#6366f1,#4338ca);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(79,70,229,.4)}
.side-logo .mark svg{width:21px;height:21px;color:#fff}
.side-logo .name{font-weight:700;font-size:1.05rem;color:#fff;letter-spacing:-.01em}
.side-logo .tag{font-size:.66rem;color:#6b7292;letter-spacing:.06em;text-transform:uppercase;margin-top:1px}
.role-switch{margin:2px 16px 12px;background:#1a1e33;border-radius:10px;padding:4px;display:flex;gap:4px;flex-shrink:0}
.role-switch button{flex:1;padding:7px 4px;border-radius:7px;font-size:.78rem;font-weight:600;color:#8b92ad;transition:.15s}
.role-switch button.on{background:#2c3152;color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.side-nav{flex:1;overflow-y:auto;padding:4px 12px 20px}
.side-nav::-webkit-scrollbar-thumb{background:#2b3049}
.nav-group{margin-top:16px}
.nav-group>.gh{font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#565d7c;padding:0 10px 7px}
.nav-item{display:flex;align-items:center;gap:10px;padding:7.5px 10px;border-radius:8px;font-size:.86rem;font-weight:500;color:#a2a8c0;cursor:pointer;transition:.12s;position:relative;white-space:nowrap}
.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.75}
.nav-item:hover{background:#1b1f36;color:#e2e5f2}
.nav-item.on{background:linear-gradient(90deg,rgba(99,102,241,.22),rgba(99,102,241,.08));color:#fff}
.nav-item.on svg{opacity:1;color:#8f94ff}
.nav-item .cnt{margin-left:auto;font-size:.68rem;font-weight:700;background:#2c3152;color:#aab0d0;border-radius:99px;padding:1.5px 7px}
.nav-item.on .cnt{background:#4f46e5;color:#fff}
.nav-item .cnt.hot{background:#d03b3b;color:#fff}
.side-user{flex-shrink:0;border-top:1px solid #222642;padding:13px 20px;display:flex;align-items:center;gap:10px}
.side-user .ava{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#ef4444);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:#fff}
.side-user .nm{font-size:.82rem;font-weight:600;color:#e2e5f2}
.side-user .rl{font-size:.7rem;color:#6b7292}

/* ============ Топбар ============ */
.topbar{display:flex;align-items:center;gap:14px;padding:0 32px;height:62px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;z-index:20}
.crumbs{font-size:.85rem;color:var(--muted);display:flex;align-items:center;gap:7px;min-width:0}
.crumbs b{color:var(--text);font-weight:650;white-space:nowrap}
.topbar .search{margin-left:auto;position:relative;width:300px}
.topbar .search input{width:100%;padding:8px 12px 8px 34px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);outline:none;transition:.15s}
.topbar .search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.topbar .search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted)}
.search-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow-lg);z-index:60;display:none;overflow:hidden;max-height:340px;overflow-y:auto}
.search-drop.open{display:block}
.search-drop .sr{display:flex;align-items:center;gap:10px;padding:10px 13px;font-size:.83rem;cursor:pointer;border-bottom:1px solid var(--border)}
.search-drop .sr:last-child{border-bottom:none}
.search-drop .sr:hover{background:var(--surface-2)}
.search-drop .srt{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:var(--accent-soft);border-radius:5px;padding:2px 7px;flex-shrink:0}
.tb-btn{width:37px;height:37px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--text-2);border:1px solid var(--border);background:var(--surface);transition:.15s;position:relative}
.tb-btn:hover{background:var(--surface-2);border-color:var(--border-2)}
.tb-btn svg{width:17px;height:17px}
.tb-btn .dot{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--crit);border:2px solid var(--surface)}
.wh-select{display:flex;align-items:center;gap:8px;padding:7px 13px;border-radius:9px;border:1px solid var(--border);background:var(--surface);font-size:.83rem;font-weight:600;color:var(--text-2)}
.wh-select svg{width:15px;height:15px;color:var(--accent)}

/* ============ Общие блоки ============ */
.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.page-head h1{font-size:1.45rem;font-weight:750;letter-spacing:-.02em}
.page-head .sub{color:var(--muted);font-size:.88rem;margin-top:4px;max-width:640px}
.page-head .actions{margin-left:auto;display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:7px;padding:8.5px 15px;border-radius:9px;font-size:.85rem;font-weight:620;transition:.15s;border:1px solid transparent;white-space:nowrap}
.btn svg{width:15px;height:15px}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(79,70,229,.3)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-ghost{border-color:var(--border);background:var(--surface);color:var(--text-2)}
.btn-ghost:hover{border-color:var(--border-2);background:var(--surface-2)}
.btn-soft{background:var(--accent-soft);color:var(--accent)}
.btn-soft:hover{background:var(--accent-soft-2)}
.btn-danger{background:var(--crit-soft);color:var(--crit)}
.btn-sm{padding:5.5px 11px;font-size:.78rem;border-radius:7px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.card-pad{padding:20px 22px}
.card-h{display:flex;align-items:center;gap:10px;padding:16px 22px;border-bottom:1px solid var(--border)}
.card-h h3{font-size:.98rem;font-weight:700;letter-spacing:-.01em}
.card-h .hint{color:var(--muted);font-size:.78rem;font-weight:400}
.card-h .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.g23{grid-template-columns:2fr 1fr}.g32{grid-template-columns:1fr 2fr}
.g35{grid-template-columns:3fr 5fr}.g53{grid-template-columns:5fr 3fr}
@media(max-width:1200px){.g4{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr}}
.mt{margin-top:18px}.mt2{margin-top:26px}
.muted{color:var(--muted)}.small{font-size:.8rem}
.sec-title{font-size:1.02rem;font-weight:720;margin:28px 0 14px;display:flex;align-items:center;gap:9px;letter-spacing:-.01em}
.sec-title .hint{font-size:.78rem;color:var(--muted);font-weight:450}

/* KPI-плитки */
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:17px 19px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.kpi .lb{font-size:.78rem;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:7px}
.kpi .lb svg{width:15px;height:15px}
.kpi .val{font-size:1.72rem;font-weight:760;letter-spacing:-.03em;margin-top:7px;line-height:1.1}
.kpi .val .un{font-size:.95rem;font-weight:600;color:var(--muted);margin-left:3px}
.kpi .delta{font-size:.76rem;font-weight:650;margin-top:6px;display:flex;align-items:center;gap:5px}
.kpi .delta.up{color:var(--good-text,#0a7d0a)}
.kpi .delta.down{color:var(--crit)}
.kpi .delta .vs{color:var(--muted);font-weight:450}
.kpi .spark{position:absolute;right:14px;bottom:12px;opacity:.9}

/* Бейджи статусов */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;font-size:.73rem;font-weight:650;white-space:nowrap}
.badge .bdot{width:6px;height:6px;border-radius:50%;background:currentColor}
.b-good{background:var(--good-soft);color:var(--good-text,#0a7d0a)}
.b-warn{background:var(--warn-soft);color:var(--warn)}
.b-serious{background:var(--serious-soft);color:var(--serious)}
.b-crit{background:var(--crit-soft);color:var(--crit)}
.b-info{background:var(--info-soft);color:var(--info)}
.b-neutral{background:var(--neutral-soft);color:var(--neutral-text)}
.b-violet{background:var(--violet-soft);color:var(--violet-text)}
.b-accent{background:var(--accent-soft);color:var(--accent)}

/* Таблицы */
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:.85rem}
.tbl th{text-align:left;font-size:.71rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface-2)}
.tbl td{padding:11.5px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tbody tr{transition:background .1s}
.tbl tbody tr.clickable{cursor:pointer}
.tbl tbody tr.clickable:hover{background:var(--surface-2)}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl .strong{font-weight:650}
.tbl .sub{font-size:.75rem;color:var(--muted);margin-top:1px}
.tbl .mono{font-family:ui-monospace,Consolas,monospace;font-size:.79rem;color:var(--text-2)}
.tbl-foot{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--border);font-size:.79rem;color:var(--muted)}
.tbl-foot .pages{margin-left:auto;display:flex;gap:5px}
.tbl-foot .pg{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:600;color:var(--text-2);border:1px solid var(--border)}
.tbl-foot .pg.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* Фильтры-тулбар */
.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.f-search{position:relative}
.f-search input{padding:8px 12px 8px 32px;border-radius:9px;border:1px solid var(--border);background:var(--surface);outline:none;width:250px}
.f-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.f-search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted)}
.toolbar select{padding:8px 30px 8px 12px;border-radius:9px;border:1px solid var(--border);background:var(--surface);outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a90a3' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;cursor:pointer}
.chip-row{display:flex;gap:7px;flex-wrap:wrap}
.chip{padding:6.5px 13px;border-radius:99px;font-size:.79rem;font-weight:600;color:var(--text-2);background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:.13s;white-space:nowrap}
.chip:hover{border-color:var(--border-2)}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.chip .n{opacity:.65;margin-left:4px;font-weight:700}

/* Вкладки */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:20px;overflow-x:auto}
.tab{padding:10px 16px;font-size:.87rem;font-weight:620;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:.13s}
.tab:hover{color:var(--text-2)}
.tab.on{color:var(--accent);border-bottom-color:var(--accent)}

/* Внимание-карточки на дашборде */
.attn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:16px 18px;display:flex;gap:13px;box-shadow:var(--shadow-sm);cursor:pointer;transition:.15s;position:relative}
.attn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.attn .ic{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.attn .ic svg{width:19px;height:19px}
.attn h4{font-size:.9rem;font-weight:700;line-height:1.25}
.attn p{font-size:.78rem;color:var(--muted);margin-top:3px;line-height:1.45}
.attn .go{position:absolute;top:14px;right:14px;color:var(--muted);opacity:0;transition:.15s}
.attn:hover .go{opacity:1}
.attn .go svg{width:15px;height:15px}
.attn .cta{margin-top:9px;font-size:.76rem;font-weight:700;color:var(--accent)}
.ic svg{width:19px;height:19px}
.fic svg{width:14px;height:14px}
.ic-crit{background:var(--crit-soft);color:var(--crit)}
.ic-warn{background:var(--warn-soft);color:var(--warn)}
.ic-serious{background:var(--serious-soft);color:var(--serious)}
.ic-info{background:var(--info-soft);color:var(--info)}
.ic-good{background:var(--good-soft);color:var(--good-text,#0a7d0a)}
.ic-violet{background:var(--violet-soft);color:var(--violet-text)}
.ic-accent{background:var(--accent-soft);color:var(--accent)}

/* Лента событий */
.feed{display:flex;flex-direction:column}
.feed-item{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}
.feed-item:last-child{border-bottom:none}
.feed-item .fic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.feed-item .fic svg{width:14px;height:14px}
.feed-item .ft{font-size:.83rem;line-height:1.4}
.feed-item .ft b{font-weight:650}
.feed-item .fm{font-size:.73rem;color:var(--muted);margin-top:2px}

/* Прогресс-бары */
.pbar{height:7px;border-radius:99px;background:var(--neutral-soft);overflow:hidden;flex:1}
.pbar>i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.pbar-row{display:flex;align-items:center;gap:11px;font-size:.8rem}
.pbar-row .plb{width:150px;color:var(--text-2);font-weight:550;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pbar-row .pval{width:78px;text-align:right;font-variant-numeric:tabular-nums;font-weight:650;flex-shrink:0}

/* Дровер */
.drawer-overlay{position:fixed;inset:0;background:rgba(13,15,25,.45);opacity:0;pointer-events:none;transition:.22s;z-index:80;backdrop-filter:blur(2px)}
.drawer-overlay.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:560px;max-width:92vw;background:var(--surface);z-index:90;transform:translateX(105%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.drawer-h{display:flex;align-items:flex-start;gap:12px;padding:20px 24px;border-bottom:1px solid var(--border)}
.drawer-h h3{font-size:1.08rem;font-weight:720}
.drawer-h .sub{font-size:.8rem;color:var(--muted);margin-top:3px}
.drawer-x{margin-left:auto;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);flex-shrink:0}
.drawer-x:hover{background:var(--surface-2);color:var(--text)}
.drawer-b{flex:1;overflow-y:auto;padding:20px 24px}
.drawer-f{padding:15px 24px;border-top:1px solid var(--border);display:flex;gap:9px;justify-content:flex-end}

/* Модал */
.modal-overlay{position:fixed;inset:0;background:rgba(13,15,25,.5);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.2s;z-index:100;backdrop-filter:blur(3px)}
.modal-overlay.open{opacity:1;pointer-events:auto}
.modal{background:var(--surface);border-radius:18px;width:520px;max-width:92vw;max-height:86vh;overflow-y:auto;box-shadow:var(--shadow-lg);transform:scale(.96);transition:.2s}
.modal-overlay.open .modal{transform:scale(1)}

/* Тосты */
.toast-stack{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:9px;z-index:120}
.toast{background:#1c1f2e;color:#eef0f6;padding:12px 17px;border-radius:11px;font-size:.85rem;font-weight:550;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;animation:toastIn .25s;max-width:380px}
.toast svg{width:17px;height:17px;color:#4fd44f;flex-shrink:0}
@keyframes toastIn{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}

/* Тултип графиков */
.chart-tip{position:fixed;background:#1c1f2e;color:#fff;font-size:.76rem;font-weight:600;padding:7px 11px;border-radius:8px;pointer-events:none;opacity:0;transition:opacity .1s;z-index:130;box-shadow:var(--shadow-md);white-space:pre-line;line-height:1.5}

/* Детали (ключ-значение) */
.kv{display:grid;grid-template-columns:170px 1fr;gap:9px 14px;font-size:.85rem}
.kv dt{color:var(--muted);font-weight:500}
.kv dd{font-weight:570}

/* Таймлайн статусов */
.tline{position:relative;padding-left:24px}
.tline::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--border)}
.tl-item{position:relative;padding:8px 0 8px 8px}
.tl-item::before{content:"";position:absolute;left:-22px;top:13px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:3px solid var(--border-2)}
.tl-item.done::before{border-color:var(--good);background:var(--good)}
.tl-item.now::before{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.tl-item .t{font-size:.85rem;font-weight:640}
.tl-item .d{font-size:.74rem;color:var(--muted);margin-top:1px}

/* Мастер (визард) */
.wiz-steps{display:flex;gap:0;margin-bottom:26px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.wiz-step{flex:1;padding:14px 18px;display:flex;align-items:center;gap:11px;border-right:1px solid var(--border);position:relative;min-width:0}
.wiz-step:last-child{border-right:none}
.wiz-step .n{width:27px;height:27px;border-radius:50%;background:var(--neutral-soft);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0}
.wiz-step.on .n{background:var(--accent);color:#fff}
.wiz-step.done .n{background:var(--good-soft);color:var(--good-text,#0a7d0a)}
.wiz-step .wt{font-size:.8rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wiz-step .ws{font-size:.68rem;color:var(--muted)}
.wiz-step.off .wt{color:var(--muted)}

/* Чек-лист проверок */
.checks{display:flex;flex-direction:column;gap:0}
.check-row{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--border)}
.check-row:last-child{border-bottom:none}
.check-row .cic{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.check-row .cic svg{width:15px;height:15px}
.check-row .ct{font-size:.86rem;font-weight:600}
.check-row .cd{font-size:.76rem;color:var(--muted);margin-top:1px}
.check-row .cr{margin-left:auto}

/* Товар в списке выбора */
.prod-pick{display:flex;align-items:center;gap:13px;padding:12px 14px;border:1px solid var(--border);border-radius:11px;margin-bottom:9px;cursor:pointer;transition:.13s;background:var(--surface)}
.prod-pick:hover{border-color:var(--border-2)}
.prod-pick.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}
.prod-pick .ph{width:42px;height:42px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem}
.prod-pick .pn{font-size:.86rem;font-weight:640}
.prod-pick .pm{font-size:.74rem;color:var(--muted);margin-top:1px}
.prod-pick .qty-in{margin-left:auto;display:flex;align-items:center;gap:7px}
.prod-pick input{width:76px;padding:6px 9px;border:1px solid var(--border);border-radius:8px;text-align:right;outline:none;background:var(--surface)}
.prod-pick input:focus{border-color:var(--accent)}

/* Плитки выбора (маркетплейс/склад) */
.pick-tile{border:1.5px solid var(--border);border-radius:13px;padding:17px;cursor:pointer;transition:.14s;background:var(--surface);position:relative}
.pick-tile:hover{border-color:var(--border-2);transform:translateY(-1px)}
.pick-tile.sel{border-color:var(--accent);background:var(--accent-soft)}
.pick-tile .tick{position:absolute;top:12px;right:12px;width:21px;height:21px;border-radius:50%;background:var(--accent);color:#fff;display:none;align-items:center;justify-content:center}
.pick-tile.sel .tick{display:flex}
.pick-tile .tick svg{width:11px;height:11px}
.pick-tile h4{font-size:.92rem;font-weight:700}
.pick-tile p{font-size:.76rem;color:var(--muted);margin-top:4px;line-height:1.45}
.mp-logo{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem;color:#fff;margin-bottom:10px}
.mp-wb{background:linear-gradient(135deg,#cb11ab,#8c1a92)}
.mp-ozon{background:linear-gradient(135deg,#005bff,#0043bc)}
.mp-ym{background:linear-gradient(135deg,#fc0,#f80);color:#333}

/* Календарь */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.cal-dow{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--muted);text-align:center;padding:5px 0;letter-spacing:.05em}
.cal-cell{min-height:96px;min-width:0;border:1px solid var(--border);border-radius:10px;padding:7px 8px;background:var(--surface);font-size:.72rem;transition:.12s;cursor:pointer;overflow:hidden}
.cal-cell:hover{border-color:var(--border-2);box-shadow:var(--shadow-sm)}
.cal-cell.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.cal-cell.dim{opacity:.4}
.cal-cell .dnum{font-weight:700;font-size:.78rem;margin-bottom:5px;color:var(--text-2)}
.cal-cell.today .dnum{color:var(--accent)}
.cal-ev{border-radius:5px;padding:2px 6px;margin-bottom:3px;font-weight:600;font-size:.67rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Пустое состояние / onboarding */
.empty{padding:44px 20px;text-align:center;color:var(--muted)}
.empty svg{width:42px;height:42px;margin-bottom:12px;opacity:.5}
.ob-step{display:flex;gap:15px;padding:17px 0;border-bottom:1px solid var(--border)}
.ob-step:last-child{border:none}
.ob-step .obn{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;background:var(--neutral-soft);color:var(--muted)}
.ob-step.done .obn{background:var(--good-soft);color:var(--good-text,#0a7d0a)}
.ob-step.now .obn{background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-soft)}
.ob-step h4{font-size:.92rem;font-weight:680}
.ob-step p{font-size:.8rem;color:var(--muted);margin-top:3px;line-height:1.5}

/* Тарифные карточки */
.plan{border:1.5px solid var(--border);border-radius:16px;padding:24px;background:var(--surface);position:relative;display:flex;flex-direction:column}
.plan.hot{border-color:var(--accent);box-shadow:0 8px 28px rgba(79,70,229,.16)}
.plan .pop{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;padding:3.5px 13px;border-radius:99px;letter-spacing:.04em;white-space:nowrap}
.plan h3{font-size:1.05rem;font-weight:750}
.plan .pr{margin:13px 0 4px;font-size:1.9rem;font-weight:780;letter-spacing:-.03em}
.plan .pr span{font-size:.85rem;color:var(--muted);font-weight:500}
.plan .pd{font-size:.8rem;color:var(--muted);line-height:1.5;min-height:38px}
.plan ul{list-style:none;margin:16px 0 20px;flex:1}
.plan li{font-size:.83rem;padding:5.5px 0;display:flex;gap:9px;align-items:flex-start;line-height:1.4}
.plan li svg{width:15px;height:15px;color:var(--good);flex-shrink:0;margin-top:2px}
.plan li.no{color:var(--muted)}
.plan li.no svg{color:var(--border-2)}

/* Форма */
.frow{margin-bottom:15px}
.frow label{display:block;font-size:.79rem;font-weight:650;margin-bottom:6px;color:var(--text-2)}
.frow input,.frow select,.frow textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:9px;outline:none;background:var(--surface);transition:.13s}
.frow input:focus,.frow select:focus,.frow textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* Утилиты */
.flex{display:flex;align-items:center;gap:10px}
.fw{flex-wrap:wrap}
.spread{justify-content:space-between}
.tnum{font-variant-numeric:tabular-nums}
.hr{border:none;border-top:1px solid var(--border);margin:16px 0}
.avatar{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:#fff;flex-shrink:0}
.tag-mini{font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:5px;letter-spacing:.02em}
.tag-wb{background:#f7e3f4;color:#a4148c}
.tag-ozon{background:#e0eaff;color:#004ad9}
[data-theme="dark"] .tag-wb{background:#3d1338;color:#e87bd8}
[data-theme="dark"] .tag-ozon{background:#12264d;color:#6da7ec}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.76rem;color:var(--text-2);align-items:center}
.legend .li{display:flex;align-items:center;gap:6px;font-weight:550}
.legend .sw{width:10px;height:10px;border-radius:3px}
.big-num{font-size:2rem;font-weight:780;letter-spacing:-.03em}
.divider-v{width:1px;align-self:stretch;background:var(--border)}
.scroll-x{overflow-x:auto}
.notice{border-radius:11px;padding:13px 16px;font-size:.83rem;display:flex;gap:11px;line-height:1.5;align-items:flex-start}
.notice svg{width:17px;height:17px;flex-shrink:0;margin-top:1px}
.n-info{background:var(--info-soft);color:var(--info)}
.n-warn{background:var(--warn-soft);color:var(--warn)}
.n-good{background:var(--good-soft);color:var(--good-text,#0a7d0a)}
.n-crit{background:var(--crit-soft);color:var(--crit)}

/* ============ Pitch-экран ============ */
.hero{border-radius:20px;padding:44px 46px;background:linear-gradient(130deg,#1b1e33 0%,#232a55 55%,#31245e 100%);color:#fff;position:relative;overflow:hidden;margin-bottom:26px}
.hero::after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(124,116,242,.35),transparent 65%)}
.hero h1{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1.15;max-width:640px;position:relative}
.hero p{color:#b9bedb;max-width:600px;margin-top:14px;line-height:1.6;font-size:.95rem;position:relative}
.hero .chips{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px;position:relative}
.hero .hchip{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);color:#dfe2f5;border-radius:99px;padding:6px 14px;font-size:.78rem;font-weight:600}
.hero .cta-row{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap;position:relative}
.route-card{border:1.5px solid var(--border);border-radius:16px;padding:22px;background:var(--surface);display:flex;flex-direction:column;transition:.15s}
.route-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.route-card .rc-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:13px}
.route-card .rc-ic svg{width:20px;height:20px}
.route-card h3{font-size:1rem;font-weight:750}
.route-card p{font-size:.82rem;color:var(--muted);line-height:1.55;margin:7px 0 14px;flex:1}

/* ============ Guided demo ============ */
.guide-panel{position:fixed;right:22px;bottom:22px;width:380px;max-width:calc(100vw - 32px);background:var(--surface);border:1.5px solid var(--accent);border-radius:16px;box-shadow:var(--shadow-lg);z-index:84;padding:18px 20px;animation:toastIn .25s}
.guide-panel .gp-top{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.guide-panel .gp-tag{font-size:.66rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:3px 9px}
.guide-panel .gp-step{font-size:.72rem;color:var(--muted);font-weight:650;margin-left:auto}
.guide-panel h4{font-size:.95rem;font-weight:740;margin-bottom:5px}
.guide-panel p{font-size:.82rem;color:var(--text-2);line-height:1.55}
.guide-panel .gp-dots{display:flex;gap:5px;margin:13px 0}
.guide-panel .gp-dots i{height:4px;border-radius:99px;flex:1;background:var(--neutral-soft)}
.guide-panel .gp-dots i.done{background:var(--accent)}
.guide-panel .gp-btns{display:flex;gap:8px;justify-content:flex-end}
.guide-glow{outline:2px solid var(--accent)!important;outline-offset:3px;border-radius:12px;animation:glowPulse 1.6s infinite}
@keyframes glowPulse{0%,100%{box-shadow:0 0 0 0 rgba(99,102,241,.35)}50%{box-shadow:0 0 0 9px rgba(99,102,241,0)}}

/* ============ ТСД-режим ============ */
.tsd-wrap{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap}
.tsd-phone{width:372px;max-width:100%;background:#14161f;border-radius:30px;border:6px solid #262a3d;overflow:hidden;color:#e8eaf5;flex-shrink:0;box-shadow:var(--shadow-lg);position:relative}
.tsd-phone.flash-ok{animation:tsdOk .45s}
.tsd-phone.flash-err{animation:tsdErr .5s}
@keyframes tsdOk{0%{box-shadow:0 0 0 4px rgba(38,192,38,.9)}100%{box-shadow:0 0 0 0 rgba(38,192,38,0)}}
@keyframes tsdErr{0%,60%{box-shadow:0 0 0 4px rgba(230,96,96,.95)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}55%{transform:translateX(-4px)}70%{transform:translateX(3px)}100%{transform:none;box-shadow:0 0 0 0 transparent}}
.tsd-status{display:flex;justify-content:space-between;padding:9px 16px;font-size:.68rem;color:#8b92ad;background:#0e1018}
.tsd-head{padding:12px 16px;border-bottom:1px solid #262a3d;display:flex;align-items:center;gap:9px;font-size:.8rem}
.tsd-body{padding:14px 14px 18px}
.tsd-task{background:#1c2032;border-radius:13px;padding:13px 15px;margin-bottom:12px}
.tsd-task .tt{font-size:.72rem;color:#8b92ad;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.tsd-task .tv{font-size:1.02rem;font-weight:750;margin-top:3px}
.tsd-msg{border-radius:12px;padding:13px 15px;font-size:.9rem;font-weight:700;text-align:center;margin-bottom:12px;min-height:50px;display:flex;align-items:center;justify-content:center;gap:8px;line-height:1.35}
.tsd-msg.ok{background:#12331c;color:#4fd44f}
.tsd-msg.err{background:#3c1a1a;color:#ff8585}
.tsd-msg.idle{background:#1c2032;color:#8b92ad;font-weight:550}
.tsd-count{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:6px 0 14px}
.tsd-count b{font-size:2.6rem;font-weight:800;letter-spacing:-.03em}
.tsd-count span{color:#8b92ad;font-size:.9rem}
.tsd-btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:15px;border-radius:13px;font-size:.95rem;font-weight:750;margin-bottom:9px;transition:.12s;border:1px solid transparent}
.tsd-btn svg{width:19px;height:19px}
.tsd-btn:active{transform:scale(.98)}
.tsd-btn.primary{background:#4f46e5;color:#fff}
.tsd-btn.dark{background:#242940;color:#c9cee6;border-color:#31365260}
.tsd-btn.mini{padding:10px;font-size:.78rem;border-radius:10px;margin-bottom:0}
.tsd-errs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:4px}
.tsd-foot{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;border-top:1px solid #262a3d;font-size:.72rem;color:#8b92ad}

/* ============ Чеклист пилота ============ */
.chk{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--border);cursor:pointer}
.chk:last-child{border-bottom:none}
.chk .box{width:21px;height:21px;border-radius:6px;border:2px solid var(--border-2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.12s;margin-top:1px}
.chk .box svg{width:12px;height:12px;color:#fff;opacity:0}
.chk.on .box{background:var(--accent);border-color:var(--accent)}
.chk.on .box svg{opacity:1}
.chk .ct{font-size:.87rem;font-weight:620}
.chk.on .ct{text-decoration:line-through;color:var(--muted);font-weight:500}
.chk .cd{font-size:.76rem;color:var(--muted);margin-top:1px}

/* ============ Мобильная адаптация ============ */
.burger{display:none}
.side-overlay{position:fixed;inset:0;background:rgba(13,15,25,.5);z-index:95;opacity:0;pointer-events:none;transition:.2s}
.side-overlay.open{opacity:1;pointer-events:auto}
@media(max-width:960px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;top:0;bottom:0;left:0;width:280px;z-index:96;transform:translateX(-105%);transition:transform .25s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lg)}
  .sidebar.open{transform:translateX(0)}
  .burger{display:flex}
  .wh-select{display:none}
  .topbar{padding:0 14px;gap:9px}
  .topbar .search{width:auto;flex:1;min-width:120px}
  .content{padding:18px 14px 70px}
  .g2,.g23,.g32,.g35,.g53{grid-template-columns:1fr}
  .hero{padding:30px 24px}
  .hero h1{font-size:1.5rem}
  .drawer{width:100vw;max-width:100vw}
  .guide-panel{right:10px;bottom:10px;left:10px;width:auto}
}
@media(max-width:700px){
  html{font-size:14px}
  .g4,.g3{grid-template-columns:1fr}
  .page-head h1{font-size:1.22rem}
  .page-head .actions{width:100%;margin-left:0}
  .kpi .spark{display:none}
  .tsd-phone{width:100%}
  .flex{flex-wrap:wrap}
  .wiz-steps{overflow-x:auto}
  .wiz-step{min-width:140px}
  .prod-pick .qty-in input{width:58px}
  .kv{grid-template-columns:120px 1fr}
}
