/* Kaspi Hub — интерфейс. Тёмная тема по умолчанию, светлая по выбору. Один акцентный цвет, глубина слоями, цифры без декора. */
:root{color-scheme:dark;
 --bg:#090b0f;--rail:#0c0f13;--surface:#11141a;--raised:#181c24;--field:#0d1015;--line:#1d222b;--line2:#2a313c;
 --ink:#eceff4;--mute:#8e98a8;--faint:#5c6676;
 --accent:#8596ff;--accent2:#b39bff;--accent-ink:#0a0c1a;--accent-soft:color-mix(in srgb,var(--accent) 15%,transparent);
 --ok:#43d391;--warn:#f2b84b;--bad:#f4716c;
 --ok-soft:color-mix(in srgb,var(--ok) 14%,transparent);--warn-soft:color-mix(in srgb,var(--warn) 14%,transparent);--bad-soft:color-mix(in srgb,var(--bad) 14%,transparent);
 --hi:rgba(255,255,255,.045);--shadow:0 1px 0 var(--hi) inset,0 10px 30px -18px rgba(0,0,0,.8);--glow:radial-gradient(60% 90% at 0% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 70%);
 --r:8px;--rl:14px;--rail-w:232px;--bar:28px;
 --sans:"Geist","Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
 --mono:"Geist Mono","JetBrains Mono","SF Mono",ui-monospace,Menlo,Consolas,monospace}
:root[data-theme=light]{color-scheme:light;
 --bg:#f4f5f8;--rail:#fafbfc;--surface:#fff;--raised:#f1f3f7;--field:#fff;--line:#e5e8ee;--line2:#d3d8e1;
 --ink:#11151c;--mute:#586374;--faint:#8c96a6;
 --accent:#4a59ee;--accent2:#7c5cf0;--accent-ink:#fff;
 --ok:#0f7f58;--warn:#a06500;--bad:#c5352d;
 --hi:rgba(255,255,255,.9);--shadow:0 1px 2px rgba(20,30,50,.05),0 8px 24px -16px rgba(20,30,50,.18);--glow:radial-gradient(60% 90% at 0% 0%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 70%)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--sans);font-feature-settings:"tnum" 1,"cv11" 1;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r)}
::selection{background:var(--accent-soft)}
.mono,.num{font-variant-numeric:tabular-nums}
.sm.mono,.code{font-family:var(--mono);font-feature-settings:normal;letter-spacing:-.02em}
.mute{color:var(--mute)}.faint{color:var(--faint)}.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
.sm{font-size:12px}.r{text-align:right}.nowrap{white-space:nowrap}
[hidden]{display:none!important}

/* ---------- каркас ---------- */
#app{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100vh;padding-bottom:var(--bar)}
.rail{position:sticky;top:0;height:calc(100vh - var(--bar));display:flex;flex-direction:column;padding:18px 12px 12px;background:var(--rail);border-right:1px solid var(--line);overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:2px 10px 22px;font-weight:600;font-size:15px;letter-spacing:-.02em}
.brand i{width:24px;height:24px;border-radius:7px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 6px 16px -6px var(--accent)}
.brand i::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent-ink);opacity:.9}
.brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:11px;height:36px;padding:0 10px;border-radius:9px;color:var(--mute);text-decoration:none;position:relative;font-weight:500;transition:background .12s,color .12s}
.nav a svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.nav a:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
.nav a.on{background:var(--accent-soft);color:var(--ink)}
.nav a.on svg{color:var(--accent);opacity:1}
.nav .badge{margin-left:auto;font:600 11px var(--sans);min-width:20px;text-align:center;padding:1px 6px;border-radius:99px;background:var(--accent);color:var(--accent-ink)}
.rail .foot{margin-top:auto;padding:12px 6px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}
.rail .who{display:flex;flex-direction:column;min-width:0;flex:1;font-size:12px;color:var(--mute);line-height:1.3}
.rail .who b{color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
main{min-width:0;padding:0 clamp(18px,3.4vw,48px) 64px;max-width:1360px;width:100%}
.top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:34px 0 0}
.top h1{margin:0;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.03em}
.top .sub{color:var(--mute);font-size:13.5px;margin-top:6px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tabs{display:flex;gap:4px;margin:22px 0 0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{padding:9px 12px;color:var(--mute);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500;transition:color .12s}
.tabs a:hover{color:var(--ink)}.tabs a.on{color:var(--ink);border-color:var(--accent)}
#view{padding-top:24px}
.statusbar{position:fixed;left:0;right:0;bottom:0;height:var(--bar);display:flex;align-items:center;gap:16px;padding:0 14px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);color:var(--faint);font:11.5px var(--mono);z-index:30;white-space:nowrap;overflow:hidden}
.statusbar>*{display:flex;align-items:center;gap:6px;flex:none}
.statusbar .sp{flex:1}
.statusbar button{background:none;border:0;padding:0 4px;cursor:pointer;color:inherit;font:inherit;height:100%}
.statusbar button:hover{color:var(--ink)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--faint);display:inline-block;flex:none}
.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.dot.bad{background:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.dot.warn{background:var(--warn)}
kbd{font:10.5px var(--mono);padding:1px 5px;border:1px solid var(--line2);border-radius:4px;color:var(--mute);background:var(--raised)}

/* ---------- элементы ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--r);border:1px solid var(--line2);background:var(--raised);color:var(--ink);cursor:pointer;text-decoration:none;white-space:nowrap;font-weight:500;box-shadow:0 1px 0 var(--hi) inset;transition:border-color .12s,background .12s,transform .06s}
.btn:hover{background:color-mix(in srgb,var(--raised) 82%,var(--ink));text-decoration:none;border-color:var(--faint)}
.btn:active{transform:translateY(1px)}
.btn.pri{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 100%,#fff 8%),var(--accent));border-color:color-mix(in srgb,var(--accent) 70%,#000);color:var(--accent-ink);font-weight:600;box-shadow:0 1px 0 rgba(255,255,255,.28) inset,0 6px 16px -8px var(--accent)}
.btn.pri:hover{filter:brightness(1.07);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 100%,#fff 8%),var(--accent))}
.btn.danger{color:var(--bad)}.btn.danger:hover{background:var(--bad-soft);border-color:var(--bad)}
.btn.ghost{border-color:transparent;background:none;color:var(--mute);box-shadow:none}.btn.ghost:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}
.btn.sm{height:28px;padding:0 10px;font-size:12.5px}
.btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}
.seg{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--line);border-radius:10px;background:var(--field)}
.seg button{height:28px;padding:0 12px;border:0;border-radius:7px;background:none;color:var(--mute);cursor:pointer;font-weight:500}
.seg button:hover{color:var(--ink)}.seg button.on{background:var(--raised);color:var(--ink);box-shadow:0 1px 0 var(--hi) inset,0 0 0 1px var(--line2)}
input,select,textarea{height:34px;padding:0 11px;border-radius:var(--r);border:1px solid var(--line2);background:var(--field);min-width:0;transition:border-color .12s,box-shadow .12s}
input:hover,select:hover,textarea:hover{border-color:var(--faint)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px var(--accent-soft)}
input[type=date]{color-scheme:inherit}
input.num,input[type=number]{text-align:right}
input::placeholder{color:var(--faint)}
textarea{height:auto;padding:8px 11px;line-height:1.5}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.bar .grow{flex:1}
.chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:99px;font-size:12px;font-weight:500;background:var(--raised);color:var(--mute);white-space:nowrap}
.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.acc{background:var(--accent-soft);color:var(--accent)}
.note{padding:12px 14px;border-radius:10px;border:1px solid var(--line2);background:var(--surface);margin:0 0 14px;font-size:13px;display:flex;gap:10px;align-items:flex-start}
.note.bad{border-color:color-mix(in srgb,var(--bad) 40%,var(--line));background:var(--bad-soft)}
.note.warn{border-color:color-mix(in srgb,var(--warn) 40%,var(--line));background:var(--warn-soft)}
.note.ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--line));background:var(--ok-soft)}
.note.info{border-color:color-mix(in srgb,var(--accent) 34%,var(--line));background:var(--accent-soft)}
.note .grow{flex:1}

/* показатели: отдельные плитки */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin:0 0 18px}
.kpi{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);min-width:0}
.kpi span{display:block;color:var(--mute);font-size:12.5px}
.kpi b{display:block;font:500 clamp(18px,1.55vw,23px)/1.25 var(--sans);letter-spacing:-.03em;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.kpi.big b{font-size:32px}
.kpi.ok b{color:var(--ok)}.kpi.bad b{color:var(--bad)}.kpi.warn b{color:var(--warn)}
.kpi small{display:block;color:var(--faint);font-size:12px;margin-top:2px}

.panel{border:1px solid var(--line);border-radius:var(--rl);background:var(--surface);box-shadow:var(--shadow);margin:0 0 18px;min-width:0;overflow:hidden}
.panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}
.panel>header h2{margin:0;font-size:14px;font-weight:600;letter-spacing:-.01em}
.panel>header .sub{color:var(--mute);font-size:12.5px;font-weight:400;margin-left:6px}
.panel .pad{padding:18px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:18px;align-items:start;margin-bottom:18px}
.cols>.panel{margin:0}

/* главный блок обзора */
.hero{position:relative;display:grid;grid-template-columns:minmax(260px,5fr) 7fr;gap:8px 32px;padding:26px 28px 18px;border:1px solid var(--line);border-radius:18px;background:var(--glow),var(--surface);box-shadow:var(--shadow);margin:0 0 18px;overflow:hidden}
.hero .lbl{color:var(--mute);font-size:13px}
.hero .big{font:500 clamp(40px,5.4vw,64px)/1.05 var(--sans);letter-spacing:-.045em;margin:8px 0 10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.hero .big small{font-size:.38em;color:var(--mute);letter-spacing:-.01em;margin-left:6px;font-weight:400}
.hero .meta{display:flex;gap:22px;flex-wrap:wrap;color:var(--mute);font-size:13px}.hero .meta b{display:block;color:var(--ink);font-weight:500;font-size:18px;letter-spacing:-.02em;margin-top:2px}
.hero .hours{height:150px;padding:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin:0 0 18px}
.stat{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:8px}
.stat span{color:var(--mute);font-size:13px}.stat b{font:500 20px var(--sans);letter-spacing:-.02em}
.stat.warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--line));background:var(--warn-soft)}.stat.warn b{color:var(--warn)}
.stat.bad b{color:var(--bad)}.stat.ok b{color:var(--ok)}

/* таблицы */
.tw{overflow:auto;max-width:100%}
.tw.tall{max-height:min(72vh,860px)}
table{width:100%;border-collapse:collapse}
th{position:sticky;top:0;z-index:1;background:var(--surface);text-align:left;font-weight:500;font-size:12px;color:var(--mute);padding:11px 18px;border-bottom:1px solid var(--line);white-space:nowrap}
th.r{text-align:right}
th[data-o]{cursor:pointer;user-select:none}th[data-o]:hover{color:var(--ink)}
td{padding:13px 18px;border-bottom:1px solid var(--line);vertical-align:top}
td.num,td.r{white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr{transition:background .1s}
tbody tr:hover{background:color-mix(in srgb,var(--ink) 3.5%,transparent)}
td .sub{display:block;color:var(--faint);font:11px var(--mono);margin-top:1px}
td.empty,.empty{padding:44px 18px;text-align:center;color:var(--mute)}
td input{width:96px;height:28px;padding:0 8px;font-size:12px;margin-top:5px}

/* списки действий и строк */
.list>*{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--line);color:inherit}
.list>*:last-child{border-bottom:0}
.list a:hover{background:color-mix(in srgb,var(--ink) 4%,transparent);text-decoration:none}
.list .grow{flex:1;min-width:0}
.list .t{font-weight:500}.list .d{color:var(--mute);font-size:12.5px;margin-top:1px}
.lvl{width:8px;height:8px;border-radius:50%;flex:none;background:var(--warn)}.lvl.bad{background:var(--bad)}.lvl.ok{background:var(--ok)}
.row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row .l{max-width:560px}.row .l b{font-weight:500}.row .l .d{color:var(--mute);font-size:12.5px;margin-top:2px}
.row input[type=text],.row input[type=number],.row input:not([type]),.row input[type=date],.row input[type=password]{width:200px}

/* графики */
.hours{display:flex;align-items:flex-end;gap:4px;height:120px}
.hours .c{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;position:relative;min-width:0}
.hours .c i{display:block;background:color-mix(in srgb,var(--ink) 11%,transparent);border-radius:4px 4px 1px 1px;min-height:3px;transition:background .12s}
.hours .c.now i{background:linear-gradient(180deg,var(--accent2),var(--accent))}
.hours .c:hover i{background:var(--accent)}
.hours .c em{font:normal 10.5px var(--sans);color:var(--faint);text-align:center;margin-top:6px;height:14px}
.hours .tip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:5px 9px;border-radius:6px;font:11.5px var(--sans);white-space:nowrap;z-index:5;pointer-events:none}
.hours .c:hover .tip{display:block}
.meter{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--line);gap:2px}
.bargauge{height:4px;background:var(--line);border-radius:2px;margin-top:7px}.bargauge i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:2px}
svg.line{width:100%;height:auto;display:block}

/* товары */
.pg{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;padding:0}
.pc{border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:border-color .12s,transform .12s}
.pc:hover{border-color:var(--line2);transform:translateY(-1px)}
.pc.out{opacity:.62}
.pi{aspect-ratio:1;background:#fff;display:grid;place-items:center;position:relative}
.pi img{width:100%;height:100%;object-fit:contain;padding:10px}
.pcam{position:absolute;top:8px;right:8px;z-index:2;border:1px solid var(--line);background:rgba(255,255,255,.92);color:#222;border-radius:999px;padding:3px 8px;font:500 12px var(--sans);cursor:pointer;opacity:.0;transition:opacity .12s}.pc:hover .pcam,.pcam:focus-visible,.pcam.need{opacity:1}.th[data-ph]:hover{outline:2px solid var(--accent,#6aa)}
.ph{display:none;width:100%;height:100%;align-items:center;justify-content:center;font:600 34px var(--sans);color:var(--faint);background:var(--raised)}.ph.s{display:flex}
.pb{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.pn{font-size:13px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.pp{font:600 18px var(--sans);letter-spacing:-.03em}
.pm{font-size:11.5px;color:var(--mute)}.pm b{color:var(--ink);font-weight:500}
.ro{margin-top:auto;font-size:12px;padding:5px 9px;border-radius:7px;background:var(--warn-soft);color:var(--warn)}.ro.late{background:var(--bad-soft);color:var(--bad)}
.th{position:relative;flex:none;width:46px;height:46px;border-radius:10px;background:#fff;border:1px solid var(--line);overflow:visible}
.th img{width:100%;height:100%;object-fit:contain;border-radius:10px;padding:3px}
.th .ph{font-size:16px;border-radius:10px}
.th i{position:absolute;right:-6px;bottom:-6px;min-width:20px;padding:0 5px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font:700 11px/18px var(--sans);text-align:center;font-style:normal;border:2px solid var(--surface)}
.oc{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--field)}
.oc>b{display:flex;justify-content:space-between;font:12px var(--mono);color:var(--mute);margin-bottom:8px;font-weight:400}.oc>b span{color:var(--ink)}
.ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px;padding:18px}
.ln{display:flex;align-items:center;gap:12px;padding:4px 0}.ln .nm{flex:1;min-width:0}

/* режим сборки (телефон) */
.pk{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}
.pkh{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-weight:600}
.pkp0{height:4px;background:var(--line)}.pkp0 div{height:100%;background:var(--accent);transition:width .2s}
.pkb{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center}
.pkf{position:relative;width:min(86vw,52vh);aspect-ratio:1;background:#fff;border-radius:20px;border:1px solid var(--line);display:grid;place-items:center}
.pkf img{width:100%;height:100%;object-fit:contain;padding:10px;border-radius:20px}.pkph{width:100%;height:100%;font-size:80px;border-radius:20px}
.pkf i{position:absolute;right:-8px;top:-8px;min-width:54px;padding:3px 14px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font:700 26px/1.3 var(--sans);font-style:normal;border:3px solid var(--bg)}
.pkn{font-size:clamp(18px,4.6vw,28px);font-weight:600;line-height:1.25;max-width:720px;letter-spacing:-.02em}
.pkf2{display:grid;grid-template-columns:1fr 2fr 1fr;gap:10px;padding:12px 16px calc(16px + env(safe-area-inset-bottom))}
.pkf2 button{min-height:58px;border-radius:14px;border:1px solid var(--line2);background:var(--raised);font-weight:600;font-size:16px;cursor:pointer}
.pkf2 .go{background:var(--ok);border-color:var(--ok);color:#04210f;font-size:19px}

/* окна, палитра команд, уведомления */
.scrim{position:fixed;inset:0;z-index:80;background:rgba(4,6,10,.62);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;backdrop-filter:blur(6px)}
.dlg{width:min(100%,480px);background:var(--surface);border:1px solid var(--line2);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.55);overflow:hidden}
.dlg h3{margin:0;padding:20px 22px 0;font-size:17px;letter-spacing:-.02em}
.dlg .body{padding:10px 22px 18px;color:var(--mute)}
.dlg .body b{color:var(--ink)}
.dlg footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line);background:var(--rail)}
.pal{width:min(100%,580px);background:var(--surface);border:1px solid var(--line2);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.55);overflow:hidden}
.pal input{width:100%;height:52px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 20px;font-size:15px;background:none}
.pal input:focus{box-shadow:none}
.pal ul{list-style:none;margin:0;padding:8px;max-height:360px;overflow:auto}
.pal li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:9px;cursor:pointer}
.pal li.on{background:var(--accent-soft)}.pal li small{color:var(--faint)}
.toasts{position:fixed;right:18px;bottom:calc(var(--bar) + 16px);display:flex;flex-direction:column;gap:8px;z-index:90;align-items:flex-end}
.toast{max-width:min(92vw,420px);padding:11px 16px;border-radius:10px;background:var(--ink);color:var(--bg);font-size:13px;font-weight:500;box-shadow:0 12px 32px rgba(0,0,0,.35);animation:in .16s ease-out}
.toast.bad{background:var(--bad);color:#fff}.toast.ok{background:var(--ok);color:#04210f}
@keyframes in{from{opacity:0;transform:translateY(6px)}}

/* подключение магазина */
.steps{display:grid;gap:0}
.step{display:grid;grid-template-columns:30px 1fr;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line)}
.step:last-child{border-bottom:0}
.step .n{width:26px;height:26px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;font:600 12px var(--sans);color:var(--mute);background:var(--raised)}
.step.done .n{background:var(--ok);border-color:var(--ok);color:#04210f}
.step h3{margin:0 0 3px;font-size:15px;letter-spacing:-.01em}.step p{margin:0 0 12px;color:var(--mute);font-size:13px;max-width:62ch}
.field{display:grid;gap:5px;margin-bottom:14px;max-width:520px}.field label{font-size:12.5px;color:var(--mute)}.field input{width:100%}
.field .hint{font-size:12px;color:var(--faint)}
details.help{margin:8px 0 14px;color:var(--mute);font-size:13px}details.help summary{cursor:pointer;color:var(--accent)}details.help ol{margin:8px 0 0;padding-left:20px}details.help li{margin:4px 0}
.center{max-width:560px;margin:10vh auto 0;text-align:center}.center h1{font-size:26px;letter-spacing:-.03em;margin:0 0 8px}.center p{color:var(--mute);margin:0 0 22px}
.skeleton{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--raised),var(--line),var(--raised));background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{to{background-position:-200% 0}}
.tw td:first-child{min-width:200px}
input[type=checkbox]{width:18px;height:18px;min-width:0;padding:0;accent-color:var(--accent);cursor:pointer}
.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--accent-ink);display:grid;place-items:center;font:600 12px var(--sans);flex:none}

/* ---------- узкие экраны ---------- */
@media (max-width:860px){
 #app{grid-template-columns:1fr;padding-bottom:calc(var(--bar) + 60px)}
 .rail{position:fixed;left:0;right:0;bottom:var(--bar);top:auto;height:60px;flex-direction:row;padding:0 6px;border-right:0;border-top:1px solid var(--line);z-index:29;overflow:hidden;background:color-mix(in srgb,var(--rail) 92%,transparent);backdrop-filter:blur(12px)}
 .brand,.rail .foot{display:none}
 .nav{flex-direction:row;flex:1;justify-content:space-around;gap:0}
 .nav a{flex-direction:column;gap:3px;font-size:10px;padding:7px 2px;flex:1;height:auto;justify-content:center;align-items:center;border-radius:10px}
 .nav a svg{width:20px;height:20px}
 .nav .badge{position:absolute;top:2px;left:55%;margin:0;padding:0 4px;min-width:0;font-size:10px}
 main{padding-inline:16px}
 .statusbar .hide-s{display:none}
 .kpis{grid-template-columns:repeat(2,1fr);gap:10px}
 .kpi{padding:14px}.kpi b{font-size:21px}
 .hero{grid-template-columns:1fr;padding:20px 18px 14px}
 .hero .hours{height:110px}
 .row{flex-direction:column;align-items:stretch;gap:8px}.row input{width:100%!important}
 .top{padding-top:22px}.top h1{font-size:22px}
 th,td{padding-inline:14px}
}

/* ---------- обзор: день, отгрузка, воронка; склад; внимание ---------- */
.dsw{display:inline-flex;gap:6px;align-items:center}.dsw .btn{min-width:36px;padding:0 10px}.dsw input{width:150px}
.hero .meta b.ok{color:var(--ok)}.hero .meta b.bad{color:var(--bad)}
.ship{display:grid;grid-template-columns:minmax(240px,5fr) 7fr;gap:12px 32px;padding:20px 28px;border:1px solid var(--line);border-radius:var(--rl);background:var(--surface);box-shadow:var(--shadow);margin:0 0 18px;align-items:center}
.ship .lbl{color:var(--mute);font-size:13px}
.ship .big2{font:500 40px/1.1 var(--sans);letter-spacing:-.04em;margin:6px 0 4px;font-variant-numeric:tabular-nums}.ship .big2 small{font-size:.38em;color:var(--mute);font-weight:400;letter-spacing:0}
.ship .sh1{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ship .sh1>div{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--field);display:grid;gap:2px;font-size:13px;color:var(--mute)}
.ship .sh1 b{font:500 22px/1.2 var(--sans);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ship .sh1 small{color:var(--faint);font-size:12px}
.dotk{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:7px}.dotk.o{background:var(--accent2)}
.ship .sh2{grid-column:1/-1;margin:0}
.fun{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:0 0 18px}
.fun a{position:relative;display:grid;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;box-shadow:var(--shadow)}
.fun a:hover{text-decoration:none;border-color:var(--line2);background:var(--raised)}
.fun span{color:var(--mute);font-size:12.5px}.fun b{font:500 26px/1.2 var(--sans);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.fun small{color:var(--faint);font-size:12px}
.fun a.warn b{color:var(--warn)}
.fun i{position:absolute;right:-11px;top:50%;transform:translateY(-50%);z-index:2;width:18px;height:18px;border-radius:50%;background:var(--bg);color:var(--faint);font-style:normal;font-size:11px;display:grid;place-items:center}
.arow{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);color:inherit}
.arow:last-child{border-bottom:0}a.arow:hover{background:color-mix(in srgb,var(--ink) 4%,transparent);text-decoration:none}
.arow .grow{flex:1;min-width:0}.arow .t{font-weight:500}.arow .d{color:var(--mute);font-size:12.5px;margin-top:1px}
.list.att{margin:0 -22px;max-height:56vh;overflow:auto}
.att-b.warn{color:var(--warn)!important}.att-b.bad{color:var(--bad)!important}
.scan{display:flex;gap:8px;flex-wrap:wrap}.scan input{flex:1;min-width:220px;height:42px;font-size:15px}.scan .btn{height:42px}
.seg label{cursor:pointer}.seg label span{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:7px;color:var(--mute);font-weight:500}
.seg label:has(input:checked) span{background:var(--raised);color:var(--ink);box-shadow:0 1px 0 var(--hi) inset,0 0 0 1px var(--line2)}
.opt{display:flex;gap:10px;align-items:flex-start;margin:8px 0;color:var(--ink);cursor:pointer}.opt input{margin-top:3px}
.hk{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.hk span:last-child{color:var(--mute);text-align:right}
.help ul{margin:6px 0 0;padding-left:18px}.help li{margin:6px 0}
.note.demo{align-items:center;flex-wrap:wrap}
textarea{width:100%;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--r);background:var(--field);resize:vertical;font-size:13px}
@media (max-width:1100px){.fun{grid-template-columns:repeat(3,1fr)}.fun i{display:none}}
@media (max-width:860px){.ship{grid-template-columns:1fr;padding:18px}.ship .sh1{grid-template-columns:1fr}.fun{grid-template-columns:repeat(2,1fr)}.dsw input{width:130px}.list.att{margin:0 -22px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.tw.wh td:first-child{min-width:0;white-space:nowrap}.tw.wh td:nth-child(2){min-width:260px}

/* ---------- деньги и тарифы ---------- */
.mbars{display:flex;gap:14px;align-items:flex-end;height:190px;padding-top:6px}
.mb{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}
.mb .bx{flex:1;width:100%;max-width:64px;display:flex;align-items:flex-end;border-bottom:1px solid var(--line2)}
.mb .bx i{display:block;width:100%;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px}
.mb .bx i.neg{background:var(--bad)}
.mb em{font-style:normal;color:var(--faint);font-size:12px}
tr.tot td{border-top:1px solid var(--line2);background:color-mix(in srgb,var(--accent) 5%,transparent)}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:16px}
.plan{border:1px solid var(--line2);border-radius:var(--r);padding:16px;background:var(--surface);display:grid;gap:8px;align-content:start}
.plan.cur{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.plan h3{margin:0;font-size:15px}
.plan .pr b{font-size:26px;font-weight:600;letter-spacing:-.02em}
.plan .pl{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--mute);border-top:1px solid var(--line);padding-top:7px}
.plan .pl b{color:var(--ink);font-weight:500}
.acc{color:var(--accent)}
.rail .stores{margin-top:auto;padding:10px 6px 8px;display:grid;gap:5px}
.rail .stores:empty{display:none}
.rail .stores:not(:empty)+.foot{margin-top:0}
.rail .stores select{flex:1;min-width:0}
@media(max-width:860px){.rail .stores{display:none}}

/* ---------- обучающий тур ---------- */
.tour{position:fixed;inset:0;z-index:95}
.tour-veil{position:absolute;inset:0}
.tour-hole{position:fixed;border-radius:14px;box-shadow:0 0 0 100vmax rgba(4,6,10,.72);outline:2px solid var(--accent);outline-offset:0;pointer-events:none;transition:left .3s,top .3s,width .3s,height .3s}
.tour-hole.none{outline:0}
.tour-card{position:fixed;width:min(392px,calc(100vw - 20px));max-height:calc(100vh - 24px);overflow:auto;padding:16px 20px 18px;background:var(--surface);border:1px solid var(--line2);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.55);transition:left .3s,top .3s}
.tour-top{display:flex;align-items:center;gap:10px}
.tour-tag{font-size:12px;font-weight:500;padding:2px 10px;border-radius:99px;background:var(--accent-soft);color:var(--accent)}
.tour-count{margin-left:auto;color:var(--faint);font-size:12px}
.tour-skip{background:none;border:0;color:var(--mute);font-size:12.5px;cursor:pointer;padding:2px 4px;border-radius:6px}
.tour-skip:hover{color:var(--ink)}
.tour-bar{height:3px;border-radius:3px;background:var(--line);margin:12px 0 14px;overflow:hidden}
.tour-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .3s}
.tour-card h3{margin:0 0 6px;font-size:18px;letter-spacing:-.02em;line-height:1.25}
.tour-card p{margin:0;color:var(--mute);font-size:14px;line-height:1.55}
.tour-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.tour-chips span{border:1px solid var(--line2);border-radius:8px;padding:2px 9px;font-size:12.5px;color:var(--mute)}
.tour-do{margin-top:14px;padding:11px 13px;border-radius:10px;background:var(--raised)}
.tour-do b{font-size:12.5px;font-weight:600}
.tour-do ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:7px}
.tour-do li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.45;color:var(--mute)}
.tour-do li::before{content:"";position:absolute;left:1px;top:3px;width:11px;height:11px;border-radius:50%;border:1.5px solid var(--accent)}
.tour-go{display:grid;gap:6px;margin-top:14px}
.tour-go button{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;text-align:left;padding:10px 13px;border:1px solid var(--line2);border-radius:10px;background:var(--surface);cursor:pointer}
.tour-go button:hover{background:var(--raised);border-color:var(--accent)}
.tour-go span{font-weight:500}
.tour-go small{color:var(--mute);font-size:12px;white-space:nowrap}
.tour-cta{display:inline-block;margin-top:12px;padding:0;border:0;background:none;color:var(--accent);font-weight:500;font-size:13.5px;cursor:pointer}
.tour-cta:hover{text-decoration:underline}
.tour-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.tour-foot .btn{height:36px;padding:0 16px}
@media(max-width:640px){.tour-chips{display:none}.tour-card{padding:14px 16px 16px}}

/* ---------- ИИ-помощник ---------- */
.ai-chat{display:flex;flex-direction:column;height:min(72vh,780px);min-height:440px;overflow:hidden}
.ai-log{flex:1;overflow:auto;padding:28px max(22px,calc((100% - 760px)/2));display:flex;flex-direction:column;gap:22px;scroll-behavior:smooth}
.ai-msg{display:flex;gap:12px;max-width:760px;width:100%;align-items:flex-start;animation:aiin .22s ease-out}
.ai-msg.me{align-self:flex-end;justify-content:flex-end;max-width:min(78%,620px)}
.ai-msg.me>div{background:var(--raised);border:1px solid var(--line2);padding:10px 15px;border-radius:18px 18px 6px 18px;white-space:pre-wrap;line-height:1.55;font-size:14.5px}
.ai-msg.bot .ai-bd{min-width:0;flex:1;padding-top:3px}
.ai-msg.err .ai-md{color:var(--bad)}
@keyframes aiin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.ai-av{flex:none;width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;color:var(--accent-ink)}
.ai-av.big{width:44px;height:44px;border-radius:14px;margin:0 auto 14px}.ai-av.big svg{width:22px;height:22px}
.ai-av svg,.ai-ttl svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.ai-md{line-height:1.65;font-size:14.5px}
.ai-md p{margin:0 0 10px}.ai-md p:last-child{margin-bottom:0}
.ai-md h4{margin:14px 0 6px;font-size:15px;letter-spacing:-.01em}.ai-md h4:first-child{margin-top:0}
.ai-md ul,.ai-md ol{margin:0 0 10px;padding-left:22px}.ai-md li{margin:4px 0}
.ai-md b{font-weight:600}
.ai-md code{font-family:var(--mono);font-size:.9em;background:var(--raised);padding:1px 5px;border-radius:5px}
.ai-live>:last-child::after{content:"";display:inline-block;width:7px;height:15px;margin-left:3px;vertical-align:-2px;background:var(--accent);border-radius:2px;animation:aicur 1s steps(2) infinite}
@keyframes aicur{50%{opacity:0}}
.ai-think{display:flex;align-items:center;gap:10px;color:var(--mute);font-size:14px;padding:4px 0}
.ai-think span:not(.ai-spark){background:linear-gradient(90deg,var(--mute) 0%,var(--ink) 50%,var(--mute) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:aishine 1.6s linear infinite}
.ai-think em{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--faint)}
.ai-spark{width:14px;height:14px;border-radius:50%;background:conic-gradient(var(--accent),var(--accent2),var(--accent));animation:aispin 1.1s linear infinite;mask:radial-gradient(circle,transparent 40%,#000 42%);-webkit-mask:radial-gradient(circle,transparent 40%,#000 42%)}
@keyframes aishine{to{background-position:-200% 0}}
@keyframes aispin{to{transform:rotate(360deg)}}
.ai-src{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.ai-src a{font-size:12px;padding:3px 11px;border:1px solid var(--line2);border-radius:99px;color:var(--mute)}
.ai-src a:hover{color:var(--ink);border-color:var(--accent);text-decoration:none}
.ai-input{padding:10px max(14px,calc((100% - 790px)/2)) 12px;border-top:1px solid var(--line);background:var(--rail)}
.ai-box{display:flex;align-items:flex-end;gap:8px;background:var(--surface);border:1px solid var(--line2);border-radius:18px;padding:8px 8px 8px 14px;transition:border-color .15s,box-shadow .15s}
.ai-box:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--line2));box-shadow:0 0 0 3px var(--accent-soft)}
.ai-box textarea{flex:1;resize:none;border:0!important;background:transparent!important;box-shadow:none!important;outline:0;min-height:26px;max-height:180px;font-size:14.5px;padding:5px 0;line-height:1.5}
.ai-send{flex:none;width:34px;height:34px;border-radius:11px;border:0;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;cursor:pointer;transition:opacity .15s,transform .1s}
.ai-send:active{transform:scale(.94)}
.ai-send:disabled{opacity:.35;cursor:default}
.ai-send svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ai-foot{font-size:11.5px;text-align:center;margin-top:7px}
.ai-dots{display:flex;gap:5px;padding:10px 0}
.ai-dots i{width:7px;height:7px;border-radius:50%;background:var(--mute);animation:aidot 1.2s infinite ease-in-out}
.ai-dots i:nth-child(2){animation-delay:.15s}.ai-dots i:nth-child(3){animation-delay:.3s}
@keyframes aidot{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ai-empty{padding:38px 22px;text-align:center;margin:auto}
.ai-empty h3{margin:0 0 6px;font-size:19px;letter-spacing:-.02em}
.ai-empty p{margin:0 auto;max-width:52ch}
.ai-hints{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:20px auto 0;max-width:760px}
.ai-hints button{border:1px solid var(--line2);background:var(--surface);border-radius:99px;padding:7px 14px;cursor:pointer;color:var(--ink);font-size:13px}
.ai-hints button:hover{border-color:var(--accent);background:var(--accent-soft)}
.ai-sum{margin:0;padding:16px 18px 6px;font-size:14.5px;line-height:1.55}
.ai-tasks .ai-pr{width:9px;height:9px;border-radius:50%;background:var(--faint);flex:none}
.ai-pr.bad{background:var(--bad)}.ai-pr.warn{background:var(--warn)}
.ai-ttl{display:inline-flex;align-items:center;gap:8px}
.ai-ttl svg{color:var(--accent)}
.ai-cta .pad{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px}
.ai-cta .mute{flex:1;min-width:200px}
.ai-busy{opacity:.75;cursor:progress}
.ai-form{max-width:680px}
.ai-form .field{max-width:none}
.ai-form select{width:100%}
.ai-kw{display:flex;flex-wrap:wrap;gap:6px}
.ai-ul{margin:6px 0 0;padding-left:20px}.ai-ul li{margin:5px 0;line-height:1.5}
.ai-bars>div{display:grid;grid-template-columns:minmax(0,1fr) 120px 28px;gap:12px;align-items:center;padding:6px 0;font-size:13.5px}
.ai-bars i{display:block;height:8px;background:var(--raised);border-radius:4px;overflow:hidden}
.ai-bars b{display:block;height:100%;border-radius:4px;background:var(--accent)}
.ai-bars b.ok{background:var(--ok)}.ai-bars b.bad{background:var(--bad)}
.ai-bars em{font-style:normal;color:var(--mute);text-align:right;font-family:var(--mono);font-size:12px}
.ai-connect ol{margin:0 0 12px;padding-left:20px}.ai-connect li{margin:7px 0;line-height:1.55}
@media (max-width:860px){
 .ai-chat{height:calc(100vh - 330px)}
 .ai-log{padding:16px}
 .ai-msg.me{max-width:92%}
 .ai-bars>div{grid-template-columns:minmax(0,1fr) 70px 24px}
}
.pad .ai-sum{padding:0}
@media (max-width:860px){.ai-chat{height:calc(100dvh - 300px);min-height:380px}#kd{display:flex;width:100%}#kd button{flex:1;height:auto;min-height:28px;padding:5px 6px;line-height:1.25}}
@media (max-width:440px){.nav a{font-size:9px;letter-spacing:-.02em;padding-inline:0}.nav a svg{width:19px;height:19px}}

/* ---------- поиск ниши ---------- */
.nsc{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.ring{--c:var(--accent);width:92px;height:92px;border-radius:50%;flex:none;display:grid;place-items:center;align-content:center;background:radial-gradient(closest-side,var(--surface) 78%,transparent 80%),conic-gradient(var(--c) calc(var(--v)*1%),var(--line) 0)}
.ring.ok{--c:var(--ok)}.ring.warn{--c:var(--warn)}.ring.bad{--c:var(--bad)}
.ring b{font:600 28px/1 var(--sans);letter-spacing:-.03em}.ring small{color:var(--faint);font-size:11px}
.nwhy{display:grid;gap:6px;margin-top:16px;font-size:13px}
.nwhy>div{display:flex;gap:8px;align-items:baseline}.nwhy i{width:7px;height:7px;border-radius:50%;flex:none;background:var(--faint);transform:translateY(-1px)}
.nwhy .ok i{background:var(--ok)}.nwhy .info i{background:var(--accent)}.nhl{margin:10px 0 0;font-size:17px;font-weight:600;letter-spacing:-.2px}.nwhy .warn i{background:var(--warn)}.nwhy .bad i{background:var(--bad)}
.nseg .mb em{font-size:11px;white-space:nowrap}.nseg .bx i.best{background:var(--ok)}
@media (max-width:860px){.nseg{gap:6px}.nseg .mb b{font-size:10px}}
.ntab td:nth-child(3){min-width:260px}.ntab td:first-child,.ntab th:first-child{width:36px;min-width:0}
@media (max-width:860px){.kpi.big b{font-size:24px}}
.dbar{height:6px;border-radius:3px;background:var(--line);margin:3px 0;overflow:hidden}.dbar i{display:block;height:100%;border-radius:3px}
.dbar i.a{background:var(--accent)}.dbar i.b{background:var(--ok)}.ink{color:var(--ink)}
.nsegt tr.best td{background:var(--ok-soft)}
.nmon{height:170px;gap:8px}.nmon .bx i.part{opacity:.45}.nmon .mb b{font-size:11px}
.nprod{display:flex;gap:18px;align-items:flex-start}.nprod img{width:120px;height:120px;object-fit:contain;border-radius:10px;background:#fff;flex:none}
.nprod .kpis{margin:12px 0}
tr.own td{background:var(--ok-soft)}
@media (max-width:860px){.nprod{flex-direction:column}.nmon{gap:3px}.nmon .mb b{font-size:9px}}
/* поиск ниши: графики и карточка товара */
.nchart{display:flex;gap:6px;align-items:flex-end;height:210px;padding-top:4px}
.nchart .col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%}
.nchart .col b{font:600 12px/1 var(--mono);color:var(--ink);white-space:nowrap}
.nchart .bx{flex:1;width:100%;max-width:46px;display:flex;align-items:flex-end;border-bottom:1px solid var(--line2)}
.nchart .bx i{display:block;width:100%;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 70%,transparent));border-radius:5px 5px 0 0;min-height:2px}
.nchart .col.est .bx i{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--accent) 45%,transparent) 0 5px,transparent 5px 9px);outline:1px dashed color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:-1px}
.nchart .col.est b{color:var(--faint)}
.nchart .col.part .bx i{opacity:.55}
.nchart em{font-style:normal;color:var(--mute);font-size:11.5px;white-space:nowrap}
.nchart.wp{height:256px}.nchart{height:228px}.nchart .rv{text-decoration:none;font:500 10.5px/1 var(--mono);color:var(--mute);white-space:nowrap}
@media (max-width:860px){.nchart .rv{font-size:8.5px;letter-spacing:-.3px}}
.pr{text-decoration:none;font:600 11px/1 var(--mono);color:var(--ink);white-space:nowrap}
.pr.up{color:var(--ok,#4ade80)}.pr.dn{color:var(--bad,#f87171)}.pr.soft{opacity:.5;font-weight:400}
.nlegend{margin-top:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sw{display:inline-block;width:14px;height:10px;border-radius:2px;background:var(--accent)}.sw.est{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--accent) 45%,transparent) 0 4px,transparent 4px 7px);outline:1px dashed var(--accent)}
.nring{display:flex;align-items:center;gap:14px;margin:14px 0 4px}
.nkpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0 0 18px}
.nkpi .kpi b{font-size:clamp(20px,1.9vw,27px)}.nkpi .kpi.big b{font-size:clamp(26px,2.4vw,34px)}
.nptitle{font-size:18px;font-weight:600;line-height:1.3}
.nprod img{width:150px;height:150px}
.nsell{display:grid;gap:2px}
.nsell>div{display:grid;grid-template-columns:minmax(140px,1.4fr) 2fr 90px 60px 90px;gap:12px;align-items:center;padding:8px 6px;border-radius:8px}
.nsell>div:hover{background:var(--hi)}.nsell>div.own{background:var(--ok-soft)}
.nsell .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nsell .bar{height:10px;background:var(--line);border-radius:5px;overflow:hidden;margin:0}.nsell .bar i{display:block;height:100%;background:var(--accent);border-radius:5px}
.nsell .own .bar i{background:var(--ok)}
.nstrip{position:relative;height:30px;margin:6px 8px 0;border-bottom:2px solid var(--line2)}
.nstrip i{position:absolute;bottom:-6px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--accent);opacity:.75}
.nstrip b{position:absolute;bottom:-12px;width:2px;height:24px;margin-left:-1px;background:var(--ok)}
@media (max-width:860px){.nsell>div{grid-template-columns:1fr 70px 70px;}.nsell .bar,.nsell>div>span:nth-child(4){display:none}.nchart{gap:2px}.nchart .col b{font-size:9px}.nchart em{font-size:9px}}
.nparts{display:grid;gap:6px;margin:12px 0 4px;max-width:760px}
.nparts>div{display:grid;grid-template-columns:200px 1fr 64px minmax(0,1.4fr);gap:10px;align-items:center;font-size:13px}
.nparts .pb{height:8px;background:var(--line);border-radius:4px;overflow:hidden;padding:0;display:block;flex:none}.nparts .pb i{display:block;height:100%;border-radius:4px;background:var(--warn)}
.nparts .pb i.ok{background:var(--ok)}.nparts .pb i.bad{background:var(--bad)}
.nparts b{text-align:right}.nparts small{color:var(--faint);font-weight:400}
@media (max-width:860px){.nparts>div{grid-template-columns:1fr 60px}.nparts .pb,.nparts em{display:none}}

/* ---------- Рынок: подбор ниши, категории, бренды, товары ---------- */
.mk-hero{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:18px;padding:28px 28px 22px;margin-bottom:22px;
  background:radial-gradient(70% 120% at 0% 0%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 60%),radial-gradient(60% 100% at 100% 0%,color-mix(in srgb,var(--accent2) 16%,transparent),transparent 55%),var(--surface);box-shadow:var(--shadow)}
.mk-hero-t h2{margin:0 0 6px;font-size:26px;letter-spacing:-.03em;line-height:1.15}.mk-hero-t p{margin:0;color:var(--mute);max-width:640px}
.mk-q{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.5fr);gap:22px;margin:22px 0 18px}
.mk-q>div>b{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:10px}.mk-q>div>b>i{font-style:normal;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font:600 11px/1 var(--mono)}
.mk-chips{display:flex;flex-wrap:wrap;gap:8px}
.mk-chips button{height:34px;padding:0 14px;border-radius:99px;border:1px solid var(--line2);background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--ink);cursor:pointer;font-weight:500;transition:all .15s}
.mk-chips button:hover{border-color:var(--accent)}.mk-chips button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.mk-chips button.ghost{border-style:dashed;color:var(--mute)}
.mk-search{display:flex;gap:10px}.mk-search input{flex:1;height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--line2);background:var(--field)}
.mk-sec{display:flex;align-items:baseline;gap:12px;margin:26px 0 12px}.mk-sec h3{margin:0;font-size:18px;letter-spacing:-.02em}
.mk-sets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.mk-set{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;color:inherit;transition:transform .15s,border-color .15s}
.mk-set:hover{transform:translateY(-2px);border-color:var(--line2)}.mk-set.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.mk-set b{font-size:15px;margin-top:4px}.mk-set em{font-style:normal;margin-top:auto;padding-top:8px;color:var(--accent);font-weight:600}
.mk-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center}.mk-ic svg{width:22px;height:22px}
.mk-ic.rising{background:var(--ok-soft);color:var(--ok)}.mk-ic.calm{background:var(--accent-soft);color:var(--accent)}.mk-ic.fresh{background:var(--warn-soft);color:var(--warn)}.mk-ic.small{background:color-mix(in srgb,var(--accent2) 16%,transparent);color:var(--accent2)}
.mk-ncards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.mk-nc{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--glow),var(--surface);box-shadow:var(--shadow);cursor:pointer;transition:transform .15s,border-color .15s}
.mk-nc:hover{transform:translateY(-2px);border-color:var(--line2)}
.mk-nc header{display:flex;gap:12px;align-items:center}.mk-nc h4{margin:2px 0 0;font-size:16px;letter-spacing:-.02em}.mk-hl{margin:0;font-size:13px;color:var(--mute)}
.mk-nc dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:0}.mk-nc dt{font-size:11.5px;color:var(--faint)}.mk-nc dd{margin:0;font:600 15px/1.3 var(--sans);font-variant-numeric:tabular-nums}.mk-nc dd small{font-weight:400;color:var(--faint)}
.mk-mini{display:flex;align-items:flex-end;gap:3px;height:38px}.mk-mini i{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 45%,transparent))}.mk-mini i.part{opacity:.45}
.mk-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.mk-lead{display:flex;align-items:center;gap:6px}.mk-lt{width:32px;height:32px;border-radius:9px;overflow:hidden;display:grid;place-items:center;background:var(--raised);border:1px solid var(--line);font:600 12px/1 var(--sans);color:var(--mute)}.mk-lt img{width:100%;height:100%;object-fit:cover;background:#fff}
.mk-dh .grow,.mk-nc header .grow{flex:1;min-width:0}.mk-db .kpi b{font-size:24px;white-space:nowrap}
.mk-sc{--c:var(--faint);position:relative;width:44px;height:44px;flex:none;border-radius:50%;display:inline-grid;place-items:center;background:radial-gradient(closest-side,var(--surface) 76%,transparent 79%),conic-gradient(var(--c) calc(var(--v)*1%),var(--line) 0)}
.mk-sc b{font:600 14px/1 var(--mono)}.mk-sc.ok{--c:var(--ok)}.mk-sc.warn{--c:var(--warn)}.mk-sc.bad{--c:var(--bad)}
.mk-tab .mk-sc,.mk-pt .mk-sc{width:34px;height:34px}.mk-tab .mk-sc b{font-size:12px}
.mk-tr{font:600 12.5px/1 var(--mono);white-space:nowrap;color:var(--mute)}.mk-tr.up{color:var(--ok)}.mk-tr.dn{color:var(--bad)}
.mk-row{cursor:default}.mk-row.leaf{cursor:pointer}.mk-row.leaf:hover td{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.mk-row.lv0 td{font-weight:600}.mk-row.lv1 td,.mk-row.lv2 td,.mk-row.lv3 td{background:color-mix(in srgb,var(--raised) 40%,transparent)}
.mk-name{display:flex;align-items:center;gap:8px;min-width:220px}
.mk-tg{width:24px;height:24px;flex:none;border-radius:7px;border:1px solid var(--line2);background:var(--raised);color:var(--mute);cursor:pointer;font-size:15px;line-height:1;transition:transform .15s}
.mk-tg.on{transform:rotate(90deg);color:var(--accent);border-color:var(--accent)}
.mk-dot{width:24px;flex:none;display:grid;place-items:center}.mk-dot:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.mk-pop{display:block;width:110px;height:6px;border-radius:4px;background:var(--line)}.mk-pop i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.mk-tm{position:relative;width:100%;border-radius:12px;overflow:hidden}
.mk-tb{position:absolute;padding:10px 12px;border:2px solid var(--surface);border-radius:10px;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;overflow:hidden;color:#fff;transition:filter .15s}
.mk-tb:hover{filter:brightness(1.12)}.mk-tb b{font-size:13px;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.35)}.mk-tb span{font:500 11.5px/1.2 var(--mono);opacity:.9}
.mk-tb{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 80%,#000),color-mix(in srgb,var(--accent) 55%,#000))}
.mk-tb.ok{background:linear-gradient(160deg,color-mix(in srgb,var(--ok) 78%,#000),color-mix(in srgb,var(--ok) 48%,#000))}
.mk-tb.warn{background:linear-gradient(160deg,color-mix(in srgb,var(--warn) 78%,#000),color-mix(in srgb,var(--warn) 48%,#000))}
.mk-tb.bad{background:linear-gradient(160deg,color-mix(in srgb,var(--bad) 78%,#000),color-mix(in srgb,var(--bad) 48%,#000))}
.mk-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}.mk-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.mk-legend i.ok{background:var(--ok)}.mk-legend i.warn{background:var(--warn)}.mk-legend i.bad{background:var(--bad)}
.mk-drw{position:fixed;inset:0;z-index:60;background:rgba(5,7,10,.55);backdrop-filter:blur(3px);display:flex;justify-content:flex-end;animation:mkfade .15s}
.mk-drw aside{width:min(860px,100%);height:100%;overflow:auto;background:var(--bg);border-left:1px solid var(--line);box-shadow:-20px 0 60px -20px rgba(0,0,0,.6);animation:mkslide .2s ease-out}
.mk-dh{position:sticky;top:0;z-index:2;display:flex;gap:12px;align-items:center;padding:18px 24px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.mk-dh h2{margin:2px 0 0;font-size:22px;letter-spacing:-.03em}.mk-db{padding:8px 24px 32px}
@keyframes mkfade{from{opacity:0}}@keyframes mkslide{from{transform:translateX(40px);opacity:.4}}
.mk-brs{display:flex;flex-wrap:wrap;gap:8px;padding:16px}.mk-brs span{display:inline-flex;gap:8px;align-items:center;height:30px;padding:0 12px;border-radius:99px;background:var(--raised);font-size:13px}.mk-brs b{color:var(--mute);font-weight:500}
.mk-prod{display:flex;gap:12px;align-items:flex-start;min-width:280px}.mk-prod a{color:var(--ink);font-weight:500}.mk-prod a:hover{color:var(--accent)}
.mk-share{display:flex;align-items:center;gap:10px;min-width:200px}.mk-share i{display:block;flex:none;height:6px;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent2));min-width:3px}
.mk-flt label{display:inline-flex;align-items:center;gap:6px}
.mk-empty h2{margin:0 0 8px;letter-spacing:-.02em}
@media (max-width:1100px){.mk-sets{grid-template-columns:repeat(2,minmax(0,1fr))}.mk-q{grid-template-columns:1fr}}
@media (max-width:860px){.mk-hero{padding:20px 16px}.mk-hero-t h2{font-size:21px}.mk-sets{grid-template-columns:1fr 1fr;gap:10px}.mk-set{padding:14px}.mk-search{flex-direction:column}
  .mk-ncards{grid-template-columns:1fr}.mk-tb b{font-size:11px}.mk-tb span{display:none}.mk-dh{padding:14px 16px}.mk-db{padding:6px 16px 24px}}

/* ---------- Заказы → Отзывы ---------- */
.ra-top{display:grid;grid-template-columns:1fr 1.2fr 1.3fr;gap:14px;margin-bottom:16px}
.ra-card{display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--glow),var(--surface);box-shadow:var(--shadow)}
.ra-card>b{font-size:20px;letter-spacing:-.02em}.ra-card.ok>b{color:var(--ok)}.ra-card.warn>b{color:var(--warn)}
.ra-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ra-nums div{display:flex;flex-direction:column}.ra-nums b{font:600 22px/1.1 var(--sans)}.ra-nums span{font-size:11.5px;color:var(--faint)}
.ra-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.ra-form{display:flex;flex-direction:column;gap:12px}.ra-form input:not([type=checkbox]),.ra-form select,.ra-form textarea{height:36px;padding:0 10px;border-radius:9px;border:1px solid var(--line2);background:var(--field)}
.ra-form textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.5}
.ra-row{display:flex;flex-wrap:wrap;gap:12px}.ra-row label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--mute)}
.ra-vars{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ra-vars button{border:0;cursor:pointer}
.ra-list{max-height:260px;overflow:auto;margin-top:8px;border:1px solid var(--line);border-radius:10px}.ra-list label{display:flex;gap:10px;align-items:flex-start;padding:8px 12px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px}.ra-list label:last-child{border-bottom:0}
.ra-phone{padding:18px;border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,var(--raised)),var(--raised));border:1px solid var(--line)}
.ra-msg{max-width:88%;padding:12px 14px;border-radius:16px 16px 16px 4px;background:var(--surface);border:1px solid var(--line);white-space:pre-wrap;font-size:13.5px;line-height:1.5;box-shadow:var(--shadow)}
.ra-save{position:sticky;bottom:calc(var(--bar) + 8px);z-index:3;padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);margin:16px 0}
@media (max-width:1000px){.ra-top,.ra-grid{grid-template-columns:1fr}}

/* Склад: остатки + витрина Kaspi */
.tw.wh2 td{vertical-align:middle}.tw.wh2 td:first-child{min-width:300px}
.gd-t td{vertical-align:middle}
.gd-prod{display:flex;gap:12px;align-items:center;min-width:300px}
.gd-prod .th{width:52px;height:52px}
.gd-nm{min-width:0}
.gd-nm a{color:var(--ink);font-weight:500;text-decoration:none;border-bottom:1px solid transparent}
.gd-nm a:hover{color:var(--accent);border-bottom-color:currentColor}
.gd-rt{color:#e7a614;font-weight:600}
.gd-sl{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:auto}
.gd-off td{opacity:.72}
.gd-pg{margin:0 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.gd-bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:8px}
.gd-bar i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .4s}

/* ================= Полировка 2026-10: спокойнее и дороже, без смены стиля ================= */
:root{--accent:#8f9cff;--accent2:#a99bff;--line:#1b2029;--line2:#272e39;--surface:#0f1217;--raised:#161a21;--rl:16px;
 --shadow:0 1px 0 rgba(255,255,255,.035) inset,0 12px 32px -22px rgba(0,0,0,.9);
 --glow:radial-gradient(70% 120% at 0% 0%,color-mix(in srgb,var(--accent) 11%,transparent),transparent 65%)}
:root[data-theme=light]{--accent:#4757e6;--line:#e6e9ef;--line2:#d6dbe3;--surface:#fff;--raised:#f3f5f8;
 --shadow:0 1px 2px rgba(16,24,40,.04),0 10px 28px -20px rgba(16,24,40,.18)}

/* заголовки и цифры */
.top h1{font-size:28px;font-weight:600;letter-spacing:-.035em}
.top .sub{font-size:13px;color:var(--faint)}
.kpi span,.fun span,.hero .lbl,.stat span{font-size:12px;letter-spacing:.01em}
.kpi b{font-weight:500;letter-spacing:-.035em}
.hero .big{font-weight:450;letter-spacing:-.05em}

/* меню слева */
.rail{background:linear-gradient(180deg,color-mix(in srgb,var(--rail) 100%,var(--accent) 2%),var(--rail))}
.brand{padding-bottom:26px}
.brand i{border-radius:8px;box-shadow:0 0 0 1px rgba(255,255,255,.14) inset,0 8px 18px -10px var(--accent)}
.nav a{height:34px;font-size:13.5px}
.nav a.on{background:color-mix(in srgb,var(--ink) 6%,transparent)}
.nav a.on::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}

/* кнопки: без свечения, ровные */
.btn{height:34px;border-radius:9px;font-weight:500;letter-spacing:-.005em;box-shadow:0 1px 0 rgba(255,255,255,.03) inset}
.btn.pri{background:var(--accent);border-color:transparent;box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 1px 2px rgba(0,0,0,.25)}
.btn.pri:hover{filter:none;background:color-mix(in srgb,var(--accent) 88%,#fff)}
:root[data-theme=light] .btn.pri:hover{background:color-mix(in srgb,var(--accent) 88%,#000)}
.actions .btn:not(.pri){background:transparent}
.actions .btn:not(.pri):hover{background:var(--raised)}

/* панели, карточки */
.panel,.kpi,.fun a,.stat,.hero,.ship{border-color:var(--line);box-shadow:var(--shadow)}
.panel{border-radius:var(--rl)}
.panel>header{padding:15px 20px}
.panel>header h2{font-size:14.5px}
.kpi{border-radius:14px;padding:16px 18px 15px}
.fun a{border-radius:14px}

/* плашки: тонкая цветная полоса слева вместо заливки */
.note{position:relative;border-color:var(--line);background:var(--surface);padding:12px 16px 12px 18px;color:var(--mute);box-shadow:var(--shadow)}
.note::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--faint)}
.note b{color:var(--ink)}
.note.info::before{background:var(--accent)}.note.warn::before{background:var(--warn)}.note.bad::before{background:var(--bad)}.note.ok::before{background:var(--ok)}
.note.info,.note.warn,.note.bad,.note.ok{background:var(--surface);border-color:var(--line)}
.note.warn b{color:var(--warn)}.note.bad b{color:var(--bad)}.note.ok{color:var(--ink)}

/* таблицы */
th{font-size:11.5px;letter-spacing:.02em;color:var(--faint);background:color-mix(in srgb,var(--surface) 96%,var(--ink))}
td{border-bottom-color:color-mix(in srgb,var(--line) 85%,transparent)}
tbody tr:hover{background:color-mix(in srgb,var(--ink) 2.5%,transparent)}

/* окна */
.scrim{background:rgba(3,5,9,.55);backdrop-filter:blur(8px) saturate(1.1)}
.dlg{border-radius:18px;border-color:var(--line2);box-shadow:0 40px 100px -20px rgba(0,0,0,.6)}
.dlg footer{background:transparent}

/* нижняя строка состояния — тише */
.statusbar{color:var(--faint);font-size:11.5px}

/* ================= Мастер настройки ================= */
.su{max-width:820px;display:grid;gap:12px}
.su-top{display:flex;align-items:center;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--rl);background:var(--glow),var(--surface);box-shadow:var(--shadow);flex-wrap:wrap}
.su-top>div:nth-child(2){flex:1;min-width:200px}
.su-t{display:block;font-size:17px;letter-spacing:-.02em;margin-bottom:2px}
.su-ring{--v:0;width:58px;height:58px;border-radius:50%;flex:none;display:grid;place-items:center;align-content:center;background:conic-gradient(var(--accent) calc(var(--v)*1%),var(--line) 0);position:relative}
.su-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--surface)}
.su-ring b,.su-ring small{position:relative;line-height:1}.su-ring b{font-size:17px}.su-ring small{font-size:10px;color:var(--mute)}
.su-step{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--rl);background:var(--surface);box-shadow:var(--shadow)}
.su-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:13px;border:1px solid var(--line2);color:var(--mute);background:var(--raised)}
.su-step.now{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.su-step.now .su-n{background:var(--accent);border-color:transparent;color:var(--accent-ink)}
.su-step.done .su-n{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.su-step.lock{opacity:.55}
.su-step.run .su-n,.su-step.wait .su-n{border-color:var(--accent);color:var(--accent)}
.su-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.su-h h3{margin:0;font-size:15px;letter-spacing:-.015em}
.su-b p{margin:4px 0 12px;color:var(--mute);font-size:13px;max-width:64ch}
.su-step.done .su-b p{margin-bottom:0}
.su-row{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.su-row input{flex:1;min-width:180px;height:38px}
.su-row .btn{height:38px}
.su-res{font-size:12.5px;min-height:0}
.su-wait{font-size:13px;color:var(--mute);padding:10px 12px;border-radius:10px;background:var(--raised)}
.su-lock{margin:0!important;font-size:12.5px;color:var(--faint)!important}

/* ================= Телефон ================= */
.more-b{display:none}
.msheet{position:fixed;inset:0;z-index:90;display:flex;align-items:flex-end;background:rgba(3,5,9,.5);backdrop-filter:blur(6px);animation:msf .18s ease}
.msheet>div{width:100%;max-height:86vh;overflow:auto;background:var(--surface);border-top:1px solid var(--line2);border-radius:20px 20px 0 0;padding:8px 16px calc(18px + env(safe-area-inset-bottom));animation:msu .22s cubic-bezier(.2,.8,.2,1)}
.msheet .grip{width:38px;height:4px;border-radius:9px;background:var(--line2);margin:4px auto 14px}
.msheet .mst{display:flex;align-items:center;gap:10px;padding:0 4px 14px;border-bottom:1px solid var(--line);margin-bottom:12px;font-size:12.5px;color:var(--mute)}
.msheet .mst b{color:var(--ink);font-size:14px}.msheet .mst .grow{flex:1;min-width:0}
.msheet .mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.msheet .mgrid a{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 6px 12px;border-radius:14px;background:var(--raised);color:var(--ink);font-size:12.5px;font-weight:500;text-decoration:none;text-align:center;position:relative}
.msheet .mgrid a.on{box-shadow:0 0 0 1.5px var(--accent) inset}
.msheet .mgrid svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:var(--mute)}
.msheet .mgrid a.on svg{color:var(--accent)}
.msheet .mrow{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.msheet .mrow .btn{flex:1;height:42px;min-width:120px}
@keyframes msu{from{transform:translateY(30px);opacity:.4}}
@keyframes msf{from{opacity:0}}

@media (max-width:860px){
 :root{--bar:0px}
 .statusbar{display:none}
 #app{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
 .rail{bottom:0;height:calc(62px + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);background:color-mix(in srgb,var(--rail) 86%,transparent);backdrop-filter:blur(18px) saturate(1.4);border-top:1px solid var(--line)}
 .nav{justify-content:stretch}
 .nav a:not(.mm){display:none}
 .nav a,.more-b{flex:1;min-width:0;flex-direction:column;gap:4px;font-size:10.5px;font-weight:500;padding:8px 0 6px;height:auto;border-radius:12px;color:var(--mute);letter-spacing:0}
 .nav a.on{background:none;color:var(--accent)}
 .nav a.on::before{display:none}
 .nav a svg,.more-b svg{width:22px;height:22px}
 .more-b{display:flex;align-items:center;justify-content:center;border:0;background:none;cursor:pointer;position:relative}
 .more-b svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
 .more-b.on{color:var(--accent)}
 .more-b .badge{position:absolute;top:3px;left:56%;font:600 10px var(--sans);padding:0 5px;border-radius:99px;background:var(--bad);color:#fff;min-width:16px}
 .nav .badge{top:3px;left:56%}
 main{padding-inline:14px}
 .top{padding-top:18px;gap:12px}
 .top h1{font-size:24px}
 .top .actions{width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -14px;padding:0 14px 2px;width:calc(100% + 28px)}
 .top .actions::-webkit-scrollbar{display:none}
 .top .actions>*{flex:none}
 .actions .btn{height:36px;border-radius:99px;padding:0 14px}
 .tabs{margin-top:14px;gap:2px}
 #view{padding-top:16px}
 .panel{margin-bottom:12px;border-radius:14px}
 .panel>header{padding:13px 16px}
 .panel .pad{padding:14px 16px}
 .kpis{gap:8px;margin-bottom:12px}
 .kpi{padding:13px 14px;border-radius:12px}
 .kpi b{font-size:20px}
 .hero{padding:18px 16px 12px;border-radius:16px}
 .hero .big{font-size:44px}
 .note{font-size:12.5px;padding:11px 14px 11px 16px;flex-wrap:wrap}
 .seg{max-width:100%;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
 .seg::-webkit-scrollbar{display:none}
 .seg button,.seg label span{white-space:nowrap;flex:none}
 .bar{gap:8px}
 input,select{height:40px;font-size:16px}
 .btn{height:38px}
 .scrim{align-items:flex-end;padding:0}
 .dlg{width:100%;border-radius:20px 20px 0 0;max-height:90vh;overflow:auto;padding-bottom:env(safe-area-inset-bottom)}
 .dlg footer .btn{flex:1;height:44px}
 .su-step{grid-template-columns:28px 1fr;padding:16px 14px;gap:12px}
 .su-n{width:26px;height:26px;font-size:12px}
 .su-row input{min-width:0;flex-basis:100%}
 .su-row .btn{flex:1}
}

/* таблицы на телефоне — карточками: подпись колонки над значением */
@media (max-width:640px){
 .tw{overflow:visible}.tw.tall{max-height:none}
 table.cd,table.cd tbody{display:block;width:100%}
 table.cd thead{display:none}
 table.cd tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding:14px 16px;border-bottom:1px solid var(--line)}
 table.cd tbody tr:last-child{border-bottom:0}
 table.cd td{display:block;padding:0;border:0;min-width:0!important;max-width:none;white-space:normal;text-align:left!important;font-size:13.5px}
 table.cd td:first-child,table.cd td[colspan]{grid-column:1/-1}
 table.cd td[data-l]:not(:first-child)::before{content:attr(data-l);display:block;font-size:11px;font-weight:500;color:var(--faint);margin-bottom:2px;letter-spacing:.01em}
 table.cd td:empty,table.cd td.nil{display:none}
 table.cd td input{width:100%;margin-top:2px}
 table.cd .gd-prod{min-width:0}
 table.cd .gd-sl{margin-left:0;max-width:100%}
 .tw td:first-child,.tw.wh2 td:first-child,.tw.wh td:nth-child(2){min-width:0}
}

@media (min-width:360px) and (max-width:640px){table.cd tr{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ================= Подключение магазина одной формой ================= */
.qs{display:grid;grid-template-columns:minmax(0,560px) minmax(0,300px);gap:20px;align-items:start;max-width:900px}
.qs-card{display:grid;gap:18px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--glow),var(--surface);box-shadow:var(--shadow)}
.qs-f label{display:flex;align-items:baseline;gap:8px;font-weight:600;font-size:14px;letter-spacing:-.01em;margin-bottom:7px}
.qs-f label span{font-weight:400;font-size:12px;color:var(--faint)}
.qs-f input{width:100%;height:44px;font-size:15px;border-radius:11px}
.qs-f p{margin:7px 0 0;font-size:12.5px;line-height:1.45;color:var(--mute)}
.qs-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.qs-go{height:48px!important;font-size:15px;font-weight:600;border-radius:12px!important;margin-top:2px}
.qs-log{list-style:none;margin:0;padding:12px 14px;border-radius:12px;background:var(--raised);display:grid;gap:7px;font-size:13px}
.qs-log li{display:flex;align-items:center;gap:9px;color:var(--mute)}
.qs-log li::before{content:"";width:14px;height:14px;flex:none;border-radius:50%;border:2px solid var(--line2);border-top-color:var(--accent);animation:qsspin .8s linear infinite}
.qs-log li.ok{color:var(--ink)}.qs-log li.ok::before{animation:none;border:0;background:var(--ok-soft);box-shadow:inset 0 0 0 4px var(--ok)}
.qs-log li.warn{color:var(--warn)}.qs-log li.warn::before{animation:none;border:0;background:var(--warn)}
.qs-log li.bad{color:var(--bad)}.qs-log li.bad::before{animation:none;border:0;background:var(--bad)}
@keyframes qsspin{to{transform:rotate(360deg)}}
.qs-lock{margin:-4px 0 0;font-size:12px;color:var(--faint);text-align:center}
.qs-side{padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.qs-side>b{display:block;font-size:14px;margin-bottom:12px}
.qs-side ul{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:12px}
.qs-side li{display:flex;gap:11px;font-size:13px;line-height:1.4;color:var(--mute)}
.qs-side li b{color:var(--ink);font-weight:500}
.qs-side li i{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:600 11px var(--sans);font-style:normal;background:var(--accent-soft);color:var(--accent)}
@media (max-width:860px){.qs{grid-template-columns:1fr}.qs-card{padding:18px 16px;border-radius:16px}.qs-side{display:none}}

/* ================= Доводка: спокойнее и дороже ================= */
.top h1{font-size:30px;line-height:1.15}
.top .sub{margin-top:5px;max-width:78ch}
.kpi{transition:border-color .15s}
.kpi span{color:var(--mute)}
.kpi b{font-variant-numeric:tabular-nums}
.panel>header h2{letter-spacing:-.01em}
.tabs a{font-size:13.5px}
.tabs a.on{font-weight:600}
th{position:sticky;top:0;z-index:1}
td{padding-top:11px;padding-bottom:11px}
.chip{font-weight:500;letter-spacing:.005em}
.nav .grp{margin:14px 10px 4px;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.nav .grp:first-child{margin-top:0}

/* ================= Телефон v2: без лишних строк и обрезанных кнопок ================= */
@media (max-width:860px){
 .nav .grp{display:none}
 .top h1{font-size:25px}
 .top .sub{font-size:12.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 /* кнопки сверху и вкладки листаются пальцем, край плавно гаснет — видно, что дальше есть ещё */
 .top .actions,.tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:28px}
 .tabs{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);margin-inline:-14px;padding-left:14px}
 .tabs a{padding:11px 11px}
 /* демо-плашка компактнее */
 .note.demo{padding:9px 12px 9px 15px;gap:8px}
 .note.demo .grow{font-size:12px;line-height:1.4}
 .note.demo .btn{height:32px}
}
@media (max-width:640px){
 /* фильтры: поиск и списки на всю ширину, период — сегмент в строку и две даты рядом */
 #view .bar>input:not([type=checkbox]):not([type=radio]):not([type=date]),#view .bar>select{flex:1 1 100%;width:100%;min-width:0!important;max-width:none}
 #view .bar>input[type=date]{flex:1 1 calc(50% - 4px);width:0;min-width:0;max-width:none}
 #view .bar>.seg{flex:1 1 100%;display:flex}
 #view .bar>.seg>button{flex:1}
 #view .bar>.btn{flex:1 1 auto}
 /* дата в «Обзоре» помещается целиком */
 .dsw{display:flex;width:100%}.dsw input{flex:1;width:auto!important;min-width:0}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .kpi b{font-size:19px}
 .panel>header{flex-wrap:wrap;gap:8px}
 .panel>header .actions{width:100%}
}

/* ================= Быстрые действия на «Обзоре» ================= */
.qa{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 16px}
.qa a{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px 0 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);font-weight:500;font-size:13px;text-decoration:none;box-shadow:var(--shadow);transition:border-color .15s,background .15s}
.qa a:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--raised);text-decoration:none}
.qa svg{width:16px;height:16px;fill:none;stroke:var(--accent);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.qa b{font:600 11px var(--sans);padding:1px 7px;border-radius:99px;background:var(--accent);color:var(--accent-ink)}

/* ================= Демпинг: выбор галочками ================= */
.dmt .ck{width:34px;padding-right:0}
.dmt .ck input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;vertical-align:middle}
.dmt tr.sel td{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.bulk{position:sticky;bottom:calc(var(--bar) + 12px);z-index:30;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px 10px 16px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,var(--accent));box-shadow:0 18px 40px -18px rgba(0,0,0,.7);font-size:13px}
.bulk>span{margin-right:auto}

/* ================= Склад и прайс-лист: компактные строки ================= */
.whc .wh-v{font-weight:500;font-size:14px}
.whc td{vertical-align:top}
.whc td .sm{margin-top:2px;line-height:1.35}
.whc .gd-sl{max-width:220px;margin-left:auto;overflow:hidden;text-overflow:ellipsis}
.pl-views{margin-top:4px}
.pl-t td{vertical-align:top}
.pl-t th[data-o]{cursor:pointer;user-select:none}
.pl-t th[data-o]:hover{color:var(--ink)}

/* ================= Раздел «Расширение» ================= */
.ex-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 0 0 1px rgba(255,255,255,.14) inset,0 10px 24px -10px var(--accent)}
.ex-mark::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--accent-ink);opacity:.92}
.ex-mark.sm{width:20px;height:20px;border-radius:6px;box-shadow:none}.ex-mark.sm::after{width:6px;height:6px}
.ex-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px;align-items:center;padding:28px;margin:0 0 16px;border:1px solid var(--line);border-radius:20px;background:var(--glow),var(--surface);box-shadow:var(--shadow)}
.ex-txt h2{margin:16px 0 14px;font-size:22px;line-height:1.25;letter-spacing:-.025em;max-width:28ch}
.ex-txt ul{margin:0 0 20px;padding:0;list-style:none;display:grid;gap:9px}
.ex-txt li{position:relative;padding-left:22px;color:var(--mute);font-size:13.5px;line-height:1.45}
.ex-txt li::before{content:"";position:absolute;left:2px;top:6px;width:9px;height:9px;border-radius:3px;background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}
.ex-txt li b{color:var(--ink);font-weight:500}
.ex-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ex-cta .btn{height:42px;padding:0 20px;font-size:14px}
.ex-shot{display:grid;place-items:center;padding:12px}
.ex-card{width:100%;max-width:300px;padding:16px;border-radius:18px;background:#fff;color:#111827;box-shadow:0 30px 70px -24px rgba(0,0,0,.75),0 0 0 1px rgba(0,0,0,.06);transform:rotate(-1.5deg)}
.ex-h{display:flex;align-items:center;gap:8px;font-size:14px;padding-bottom:12px;border-bottom:1px solid #eef0f3;margin-bottom:12px}
.ex-v{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:12px;background:#e8f6ec;color:#1f7a3a}
.ex-v b{display:block;font-size:16px}.ex-v small{font-size:12px;opacity:.85}.ex-v strong{font-size:26px;font-weight:800}
.ex-rows{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin-top:12px;font-size:12.5px;color:#4b5563}.ex-rows b{font-weight:500;color:#111827}.ex-rows .t{font-weight:700;color:#111827;padding-top:4px}
.ex-steps ol{list-style:none;margin:0;padding:6px 20px 14px;display:grid;gap:0}
.ex-steps li{display:grid;grid-template-columns:30px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.ex-steps li:last-child{border-bottom:0}
.ex-steps li>i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:600 12px var(--sans);font-style:normal;background:var(--accent-soft);color:var(--accent)}
.ex-steps li b{font-size:14px}.ex-steps li p{margin:4px 0 10px;color:var(--mute);font-size:13px;max-width:70ch}
.ex-copy{display:flex;gap:8px;max-width:420px}.ex-copy input{flex:1;min-width:0;height:34px}
.su-ext{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 20px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:var(--rl);background:var(--surface)}
.su-ext p{margin:2px 0 0;font-size:12.5px;color:var(--mute)}

@media (max-width:860px){
 .qa{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:14px -14px 12px;padding:0 14px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
 .qa::-webkit-scrollbar{display:none}
 .qa a{flex:none;height:40px}
 .ex-hero{grid-template-columns:1fr;padding:20px 16px;gap:16px}.ex-shot{display:none}
 .ex-txt h2{font-size:19px}
 .ex-steps ol{padding:4px 16px 10px}
 .bulk{bottom:calc(72px + env(safe-area-inset-bottom))}
}
@media (max-width:640px){
 /* демпинг: галочка в углу карточки товара */
 table.cd.dmt tr{position:relative;padding-right:44px}
 table.cd.dmt td.ck{position:absolute;right:14px;top:14px;grid-column:auto}
 table.cd.dmt td.ck::before{display:none}
 table.cd.dmt td.ck input{width:20px;height:20px}
 table.cd.dmt td:nth-child(2){grid-column:1/-1}
 table.cd.dmt td:nth-child(2)::before{display:none}
 table.cd.whc .gd-sl{margin-left:0;max-width:100%}
}

.ar-rule{display:grid;grid-template-columns:1fr;gap:6px;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}.ar-rule .btn{justify-self:start}

.nk-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line);margin:4px 0 12px}.nk-tabs button{background:none;border:0;color:var(--mute);padding:8px 12px;border-bottom:2px solid transparent;cursor:pointer;font:inherit}.nk-tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.nk-tabs b{font-weight:600;color:var(--faint);margin-left:4px}.nk-path{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.nk-t th:first-child,.nk-t td:first-child{width:40px;min-width:40px;max-width:40px}.nk-t td:nth-child(2){width:55%}
.ra-scen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ra-sc{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .2s,background .2s}
.ra-sc.on{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.ra-sc-h{display:flex;align-items:center;gap:12px}.ra-sc-h b{font-size:14.5px;letter-spacing:-.01em}
.ra-when{font-size:12px;color:var(--mute);margin-top:2px}
.ra-ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--raised);color:var(--mute);transition:.2s}
.ra-ic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
.ra-sc.on .ra-ic{background:var(--accent-soft);color:var(--accent)}
.ra-sc.on .ra-ic-cancel{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}
.ra-sc.on .ra-ic-done{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.ra-dsc{margin:0;color:var(--mute);font-size:13px;line-height:1.5}
.ra-sc textarea{width:100%;font-size:13px;line-height:1.5}
.ra-five{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.45;padding:10px 12px;border-radius:10px;background:var(--raised);cursor:pointer}.ra-five input{margin-top:2px;flex:none}
.ra-hint{font-size:12px;color:var(--faint)}
.ra-foot{margin:12px 0 0}
@media (max-width:980px){.ra-scen{grid-template-columns:1fr}}
.sw{position:relative;display:inline-block;width:42px;height:24px;flex:none}.sw input{opacity:0;width:0;height:0}.sw span{position:absolute;inset:0;background:var(--line2);border-radius:99px;transition:.2s;cursor:pointer}.sw span:before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.sw input:checked+span{background:var(--accent)}.sw input:checked+span:before{transform:translateX(18px)}
/* мобильный: панели и сетки не раздвигают страницу шире экрана, широкие таблицы листаются внутри */
.panel,.ra-card,.ra-top>*,.ra-grid>*{min-width:0;max-width:100%}
.ra-nums{display:flex;flex-wrap:wrap;gap:12px 18px}
@media (max-width:600px){.ra-top{gap:10px}.cl-card .row{flex-wrap:wrap;gap:8px}}
/* --- график «выручка · заказы · маржа» --- */
:root{--c1:#8596ff;--c2:#3cc9b4;--c3:#f2b84b}
:root[data-theme=light]{--c1:#4a59ee;--c2:#0e9a86;--c3:#c27a00}
.cc-leg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.cc-leg button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line2);background:var(--surface);color:var(--ink);border-radius:99px;padding:5px 12px 5px 10px;font-size:12.5px;cursor:pointer;transition:opacity .15s,border-color .15s}
.cc-leg button i{width:10px;height:10px;border-radius:3px;background:var(--c)}
.cc-leg button b{font-family:var(--mono);font-weight:500;color:var(--mute);font-size:12px}
.cc-leg button:hover{border-color:var(--c)}
.cc-leg button.off{opacity:.45}.cc-leg button.off i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--c)}
.cc-wrap{position:relative}
.cc-svg{width:100%;height:auto;display:block;overflow:visible;cursor:crosshair}
.cc-grid{stroke:var(--line);stroke-dasharray:3 4;vector-effect:non-scaling-stroke}
.cc-base{stroke:var(--line2);vector-effect:non-scaling-stroke}
.cc-line{fill:none;stroke:var(--c);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.cc-area{fill:color-mix(in srgb,var(--c) 11%,transparent)}
.cc-s{transition:opacity .2s}
.cc-x{stroke:var(--mute);stroke-width:1;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}
.cc-dot{fill:var(--surface);stroke:var(--c);stroke-width:2.5;vector-effect:non-scaling-stroke}
.cc-ax{font-size:11px;fill:var(--faint)}
.cc-tip{position:absolute;top:8px;min-width:190px;background:var(--surface);border:1px solid var(--line2);border-radius:12px;padding:10px 12px;box-shadow:0 10px 30px rgba(0,0,0,.28);pointer-events:none;z-index:2;font-size:13px}
.cc-td{color:var(--mute);font-size:12px;margin-bottom:6px;text-transform:capitalize}
.cc-tr{display:flex;align-items:center;gap:8px;padding:2px 0}.cc-tr i{width:8px;height:8px;border-radius:50%;background:var(--c)}.cc-tr span{flex:1;color:var(--mute)}.cc-tr b{font-family:var(--mono);font-weight:600}
.cc-tr.sub i{background:transparent}.cc-tr.sub{font-size:12px}

/* --- ABC плитками --- */
.tm{position:relative;width:100%;aspect-ratio:1000/420;min-height:260px;border-radius:14px;overflow:hidden}
.tm-c{position:absolute;padding:2px;box-sizing:border-box;cursor:pointer}
.tm-in{width:100%;height:100%;border-radius:10px;padding:10px 12px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;overflow:hidden;
  background:linear-gradient(160deg,color-mix(in srgb,var(--tc) var(--l,100%),#232733),color-mix(in srgb,color-mix(in srgb,var(--tc) var(--l,100%),#232733) 80%,#000 20%));color:#0b0d12;transition:filter .15s,transform .15s}
.tm-c:hover .tm-in{filter:brightness(1.08) saturate(1.05)}
.tm-in b{font-size:13px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 0 rgba(255,255,255,.25)}
.tm-in span{font-size:11.5px;font-family:var(--mono);opacity:.78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-A{--tc:#4fd9c4}.tm-B{--tc:#e9bd5c}.tm-C{--tc:#ee8a95}
.tm-c.grp .tm-in{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--tc) 70%,#232733) 0 10px,color-mix(in srgb,var(--tc) 62%,#232733) 10px 20px)}
.tm-c.sm .tm-in{padding:7px 8px}.tm-c.sm .tm-in b{font-size:11.5px;-webkit-line-clamp:2}
.tm-tip{position:absolute;min-width:200px;max-width:280px;background:var(--surface);border:1px solid var(--line2);border-radius:12px;padding:10px 12px;box-shadow:0 10px 30px rgba(0,0,0,.3);pointer-events:none;z-index:3;font-size:13px;color:var(--ink)}
.tm-tn{font-weight:600;margin-bottom:2px;line-height:1.3}
.tm-tip .cc-tr span{color:var(--mute)}
.tm-leg{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;color:var(--mute);align-items:center}
.tm-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--tc)}

.cc-note{font-size:11px;color:var(--faint);margin-top:4px}
.sw span{border:0!important;outline:0}.sw input:not(:checked)+span{background:var(--line2)!important}.sw input:not(:checked)+span:before{background:var(--mute)}
.sw input:focus-visible+span{box-shadow:0 0 0 3px var(--accent-soft)}
.ra-scen{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.ra-sc-h{align-items:flex-start}.ra-sc-h .grow{min-width:0}.ra-sc-h .sw{margin-top:6px}
