/* TTLUX · веб-версия (бета). Liquid Glass + цвета Technolux. Без внешних шрифтов и библиотек. */
:root{
  --reg:#C8431A; --reg2:#E0561F; --auto:#5B5BD6; --auto2:#7676E4; --good:#34A853; --good2:#A8DDB5; --amber:#F29900; --crit:#D93025;
  --brand:#F05828; --accent:#C8431A; --accent-text:#BF3E15; --tint:rgba(240,88,40,.14);
  --ink:#1C1C1E; --ink2:#55555C; --ink3:#6E6E73; --gray:#585858;
  --ok:#1F6F34; --ok-bg:rgba(52,168,83,.16); --warn:#8A4B00; --warn-bg:#FFEBCC; --err:#B42318; --err-bg:#FDE6E3;
  --line:rgba(60,60,67,.12); --line2:rgba(60,60,67,.07);
  --glass:rgba(255,255,255,.46); --glass-thin:rgba(255,255,255,.3);
  --bg:#F2EFED;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;overflow-x:hidden}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",sans-serif;color:var(--ink);
  -webkit-font-smoothing:antialiased;background:var(--bg);font-size:15px;line-height:1.35}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:radial-gradient(40% 50% at 4% 8%,#FFCDB6 0%,rgba(255,205,182,0) 70%),
             radial-gradient(35% 45% at 70% 0%,#D6DDEB 0%,rgba(214,221,235,0) 70%),
             radial-gradient(40% 50% at 100% 90%,#F7C3AB 0%,rgba(247,195,171,0) 70%),
             radial-gradient(40% 45% at 35% 100%,#E9E2DE 0%,rgba(233,226,222,0) 70%),var(--bg)}
a{color:var(--accent-text);text-decoration:none}
a:hover{color:#9E330F}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:default}
:focus-visible{outline:3px solid rgba(240,88,40,.45);outline-offset:2px}
input:focus{outline:none;box-shadow:0 0 0 3px rgba(240,88,40,.28)}
.hidden{display:none!important}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--ink3)}
.small{font-size:13px}
.tiny{font-size:12px}

/* стекло */
.glass{position:relative;isolation:isolate;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(190%);
  backdrop-filter:blur(24px) saturate(190%);border:1px solid rgba(255,255,255,.7);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 1px rgba(255,255,255,.35),0 10px 30px rgba(60,30,20,.10)}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  background:linear-gradient(140deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,0) 35%,rgba(255,255,255,0) 72%,rgba(255,255,255,.35) 100%)}
.thin{position:relative;isolation:isolate;background:var(--glass-thin);-webkit-backdrop-filter:blur(16px) saturate(200%);
  backdrop-filter:blur(16px) saturate(200%);border:1px solid rgba(255,255,255,.65);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 4px 14px rgba(60,30,20,.08)}
.card{border-radius:22px}

/* каркас */
.app{display:flex;gap:12px;padding:12px;min-height:100vh}
.side{width:248px;flex-shrink:0;border-radius:26px;padding:20px 12px;display:flex;flex-direction:column;gap:18px;
  position:sticky;top:12px;height:calc(100vh - 24px)}
.side .logo{display:flex;align-items:center;gap:10px;padding:0 8px}
.side .logo img{height:30px;width:auto}
.beta{font-size:11px;font-weight:700;color:var(--accent-text);background:var(--tint);padding:2px 7px;border-radius:8px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav .cap{font-size:12px;font-weight:600;color:var(--ink3);padding:0 10px 4px}
.nav a{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:10px;color:var(--ink);font-size:14px}
.nav a svg{color:#E04E1E;flex-shrink:0}
.nav a.on{background:var(--tint);font-weight:600}
.nav a.soon{color:var(--ink3)}
.nav a.soon svg{color:#B8B8BD}
.nav a .soon-tag{margin-left:auto;font-size:11px;color:var(--ink3)}
.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:rgba(255,255,255,.5)}
.ava{width:32px;height:32px;border-radius:16px;background:#FDE3D8;color:var(--accent-text);font-size:13px;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.me .who{display:flex;flex-direction:column;min-width:0}
.me .who b{font-size:13px}
.me .who span{font-size:12px;color:var(--ink3)}
.me button{margin-left:auto;border:none;background:none;color:var(--ink3);padding:6px;border-radius:8px}
.main{flex:1;min-width:0;padding:14px 16px 120px;display:flex;flex-direction:column;gap:16px}
.tabs{display:none}

/* заголовки */
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.head h1{margin:0;font-size:30px;line-height:36px;font-weight:700;letter-spacing:-.02em}
.head .sub{font-size:14px;color:var(--ink3)}
.head .right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.date{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink2);text-transform:uppercase;letter-spacing:.02em}
.date img{width:24px;height:24px}
h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.01em}
.sec{display:flex;flex-direction:column;gap:8px}
.sec-h{display:flex;align-items:center;justify-content:space-between;gap:6px 10px;padding:0 4px;flex-wrap:wrap}
.sec-h .pill{white-space:normal}

/* элементы */
.pill{font-size:12px;font-weight:600;padding:4px 9px;border-radius:9px;white-space:nowrap;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.p-ok{color:var(--ok);background:var(--ok-bg)} .p-warn{color:var(--warn);background:var(--warn-bg)}
.p-err{color:var(--err);background:var(--err-bg)} .p-acc{color:#A8390F;background:#FDE6DC}
.p-neu{color:var(--ink2);background:rgba(120,120,128,.14)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:16px;font-size:13px;font-weight:500}
.dot{width:8px;height:8px;border-radius:4px;display:inline-block}
.dot.live{background:#34A853;box-shadow:0 0 6px rgba(52,168,83,.7)}
.dot.test{background:#8E8E93}
.dot.pilot{background:#F29900;box-shadow:0 0 6px rgba(242,153,0,.7)}
.seg{display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;padding:3px;border-radius:20px}
.seg button{height:30px;padding:0 14px;border:none;border-radius:17px;background:transparent;font-size:13px;font-weight:500;white-space:nowrap}
.seg button.on{background:rgba(255,255,255,.92);font-weight:600;box-shadow:0 1px 4px rgba(60,30,20,.16),inset 0 1px 0 #fff}
.btn{height:40px;padding:0 16px;border-radius:20px;border:none;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.btn-p{background:var(--accent);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 16px rgba(200,67,26,.25)}
.btn-p:disabled{background:rgba(120,120,128,.2);color:var(--ink3);box-shadow:none}
.btn-o{background:rgba(255,255,255,.6);color:var(--accent-text);border:1.5px solid var(--accent)}
.btn-o:disabled{border-color:rgba(120,120,128,.3);color:#8E8E93}
.btn-g{color:var(--ink);font-weight:500}
.btn-t{background:transparent;color:var(--accent-text)}
.btn-sm{height:32px;padding:0 12px;font-size:13px;border-radius:16px}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fchip{height:32px;padding:0 12px;border-radius:16px;border:none;font-size:13px;font-weight:500}
.fchip.on{background:var(--gray);color:#fff}
.search{display:flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:18px;color:var(--ink3);min-width:220px}
.search input{border:none;background:transparent;flex:1;min-width:0;font-size:15px;color:var(--ink)}
.search input:focus{box-shadow:none}
.note{display:flex;gap:8px;align-items:flex-start;padding:10px 14px;border-radius:16px;font-size:13px;line-height:18px}
.note.warn{background:rgba(255,210,170,.42);color:#6B3A00}
.note.info{background:rgba(255,255,255,.45);color:var(--ink2)}
.note svg{flex-shrink:0;margin-top:1px}
.empty{padding:28px 18px;text-align:center;color:var(--ink3)}
.spinner{width:22px;height:22px;border-radius:50%;border:3px solid rgba(240,88,40,.2);border-top-color:#E04E1E;animation:spin .9s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:30px;color:var(--ink3)}

/* сегодня */
.modes{display:flex;gap:8px;flex-wrap:wrap}
.grid-kpi{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.kpi{border-radius:20px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.kpi .l{font-size:13px;color:var(--ink2)}
.kpi .v{font-size:26px;font-weight:700;letter-spacing:-.02em}
.kpi .v small{font-size:14px;font-weight:600;color:var(--ink2)}
.kpi .d{font-size:13px;font-weight:600}
.up{color:#1F7A3A} .down{color:var(--err)} .flat{color:var(--ink2)}
.two{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}
.list{border-radius:22px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:none}
.row .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.row .t b{font-size:15px;font-weight:600}
.row .t span{font-size:13px;color:var(--ink3)}
.chart{border-radius:22px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.chart svg{width:100%;height:auto;max-height:260px}
.brands{display:flex;gap:8px;flex-wrap:wrap}
.brand-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px 8px 8px;border-radius:14px;color:var(--ink);font-size:14px;font-weight:600;border:none}
.brand-chip .bl{width:24px;height:24px;border-radius:7px;background:#1C1C1E;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.brand-chip.on{background:var(--tint);box-shadow:inset 0 0 0 1.5px rgba(200,67,26,.55)}

/* цены */
.tbl{border-radius:22px;overflow:hidden}
.tr{display:grid;gap:10px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line2);font-size:14px}
.tbl.wb .tr{grid-template-columns:minmax(0,1fr) 128px 104px 132px 88px 104px}
.tbl.ozon .tr{grid-template-columns:minmax(0,1fr) 116px 124px 112px 74px 64px 84px 104px}
.tr.th{font-size:12px;font-weight:600;color:var(--ink3);padding-top:12px;padding-bottom:10px;border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:2;background:rgba(250,247,245,.86);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.tr.grp{background:rgba(255,255,255,.2);padding-top:10px;padding-bottom:10px}
.tr.item .name{padding-left:38px}
.tr.single .name{padding-left:0}
.tr.st-err{background:rgba(253,236,234,.5)} .tr.st-warn{background:rgba(255,235,204,.35)}
.tr.lock{color:var(--ink3)}
.r{text-align:right}
.name{display:flex;align-items:center;gap:10px;min-width:0}
.name .tx{display:flex;flex-direction:column;min-width:0}
.name .tx b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.name .tx span{font-size:12px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.name .tx .msg{font-weight:500;white-space:normal}
.msg.err{color:var(--err)} .msg.warn{color:var(--warn)} .msg.lock{color:var(--ink3)}
.exp{width:30px;height:30px;border-radius:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:none;padding:0}
.exp svg{transition:transform .15s}
.exp.open svg{transform:rotate(90deg)}
.fld{display:flex;align-items:center;gap:4px;height:32px;padding:0 10px;border-radius:16px;border:1.5px solid rgba(60,60,67,.18);background:rgba(255,255,255,.7)}
.fld input{width:100%;min-width:0;border:none;background:transparent;font-size:14px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.fld input:focus{box-shadow:none}
.fld:focus-within{box-shadow:0 0 0 3px rgba(240,88,40,.28)}
.fld span{font-size:13px;color:var(--ink3)}
.fld.all{border-style:dashed;border-color:rgba(60,60,67,.3);background:rgba(255,255,255,.55)}
.fld.ch{border-color:var(--accent);background:#FFF3EE}
.fld.ch-warn{border-color:#B25E00;background:#FFF6E8}
.fld.ch-err{border-color:var(--err);background:#FDF1F0}
.fld.off{background:rgba(120,120,128,.1);border-color:rgba(60,60,67,.1)}
.auto{height:30px;border-radius:15px;border:1.5px solid transparent;font-size:13px;font-weight:600;padding:0 10px}
.auto.yes{background:rgba(52,168,83,.16);color:#1F6F34}
.auto.no{background:rgba(120,120,128,.14);color:var(--ink2)}
.auto.ch{border-color:var(--accent)}
.auto.all{border:1.5px dashed rgba(60,60,67,.28);background:rgba(255,255,255,.55);color:var(--ink)}
.cmp{display:flex;flex-direction:column;align-items:flex-end}
.cmp b{font-weight:600}
.cmp span{font-size:12px;color:var(--ink3)}
.delta{font-weight:600;text-align:right}
.delta.ok{color:var(--accent-text)} .delta.warn{color:#8A4B00} .delta.err{color:var(--err)} .delta.none{color:#8E8E93}
.tbl-foot{padding:12px 16px;font-size:13px;color:var(--ink3)}
.bar{position:fixed;left:272px;right:24px;bottom:16px;z-index:20;border-radius:24px;padding:10px 10px 10px 20px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bar .s{flex:1;min-width:180px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.bar .s b{font-size:15px}
.bar .s .e{color:#8F1D14;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcards{display:none}
.row-btn{width:100%;border:none;background:transparent;text-align:left;color:var(--err)}

/* журнал */
.jt .tr{grid-template-columns:92px 140px 150px 110px minmax(0,1fr) 64px 84px 54px minmax(150px,auto)}
.jt .tr.jr.can{cursor:pointer}
.jt .tr.jr.can:hover{background:rgba(255,255,255,.35)}
.jt .tr.jr.open{border-bottom:none;background:rgba(255,255,255,.4)}
.jt .jt-act{font-weight:500}
.jx-detail{padding:4px 16px 12px 314px;font-size:13px;color:var(--ink2);display:flex;flex-direction:column;gap:3px;border-bottom:1px solid var(--line2);background:rgba(255,255,255,.4)}
.jx-more{font-weight:600;margin-top:2px}
.jf .jq{margin-left:auto;min-width:200px}
.fsel{position:relative;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:16px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.fsel select{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:16px}
.fsel.dt input{border:none;background:transparent;font-size:13px;color:inherit}

/* вход */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login .box{max-width:420px;width:100%;border-radius:28px;padding:28px 24px;display:flex;flex-direction:column;gap:16px;align-items:center;text-align:center}
.login img.l{height:40px;width:auto}
.login h1{margin:0;font-size:24px}
.login p{margin:0;color:var(--ink2);font-size:15px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:96px;z-index:50;padding:10px 16px;border-radius:16px;
  font-size:14px;font-weight:500;max-width:90vw}
.toast.err{color:#8F1D14}



/* подсказка */
.tip{position:fixed;z-index:60;pointer-events:none;padding:8px 12px;border-radius:12px;font-size:12px;display:flex;flex-direction:column;gap:2px;max-width:320px;background:rgba(255,255,255,.9)}
.tip b{font-size:13px}
.tip span{color:var(--ink2)}

/* акции: таймлайн */
.tl{border-radius:22px;padding:10px 0 6px;overflow:hidden}
.tl-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:4px 16px 10px;font-size:12px;color:var(--ink2)}
.tl-legend span{display:inline-flex;align-items:center;gap:6px}
.lg{display:inline-block;width:14px;height:8px;border-radius:4px}
.lg.k-reg{background:linear-gradient(90deg,var(--reg),var(--reg2))} .lg.k-auto{background:linear-gradient(90deg,var(--auto),var(--auto2))}
.lg.now{width:2px;height:12px;background:var(--crit);border-radius:1px}
.lg.done{background:var(--good)} .lg.cov{background:var(--good2)} .lg.wait{background:rgba(120,120,128,.25)}
.tl-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.tl-inner{display:inline-block;min-width:100%}
.tl-head,.tl-row,.tl-group{display:flex;align-items:stretch}
.tl-name{width:260px;flex-shrink:0;position:sticky;left:0;z-index:4;background:rgba(250,247,245,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  padding:7px 12px 7px 16px;display:flex;flex-direction:column;gap:1px;border-right:1px solid var(--line);min-width:0}
.tl-name b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-name span{font-size:11px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-name .tl-colpill{align-self:flex-start;font-size:10px;padding:1px 6px;margin-top:2px}
.tl-name.corner{background:rgba(250,247,245,.92)}
.tl-track{position:relative;flex-shrink:0}
.tl-head .tl-track{height:52px;border-bottom:1px solid var(--line)}
.tl-m{position:absolute;top:2px;font-size:12px;font-weight:700;white-space:nowrap}
.tl-days{position:absolute;left:0;right:0;bottom:0;height:32px}
.tl-d{position:absolute;bottom:0;height:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:var(--ink2);line-height:12px}
.tl-d b{font-weight:600}
.tl-d span{font-size:10px;color:var(--ink3)}
.tl-d.we{color:var(--ink3)}
.tl-d.td b{background:var(--crit);color:#fff;border-radius:9px;min-width:20px;padding:1px 4px;text-align:center}
.tl-body{position:relative}
.tl-over{position:absolute;top:0;bottom:0;left:260px;pointer-events:none;z-index:0}
.tl-we{position:absolute;top:0;bottom:0;background:rgba(120,120,128,.07)}
.tl-now{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--crit);z-index:3}
.tl-now span{position:absolute;top:2px;left:5px;font-size:10px;font-weight:700;color:var(--crit);background:rgba(255,255,255,.85);padding:0 4px;border-radius:5px}
.tl-group .tl-name{font-size:12px;font-weight:700;color:var(--ink2);flex-direction:row;justify-content:space-between;align-items:center;padding-top:12px;background:rgba(245,241,238,.95)}
.tl-row{cursor:pointer}
.tl-row:hover .tl-name{background:rgba(255,255,255,.95)}
.tl-row .tl-track{height:auto;min-height:48px}
.tl-bar{position:absolute;top:50%;margin-top:-15px;height:30px;border-radius:15px;z-index:2;display:flex;align-items:center;padding:0 12px;color:#fff;font-size:12px;font-weight:600;
  overflow:hidden;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 4px 12px rgba(60,30,20,.14);transition:transform .12s}
.tl-bar span{overflow:hidden;text-overflow:ellipsis}
.tl-bar i{font-style:normal;opacity:.8;font-weight:500;margin-left:6px}
.tl-bar.k-reg{background:linear-gradient(90deg,var(--reg),var(--reg2))}
.tl-bar.k-auto{background:linear-gradient(90deg,var(--auto),var(--auto2))}
.tl-bar.ended{background:#C7C7CC;color:#3A3A3C;box-shadow:none}
.tl-bar.cut-l{border-top-left-radius:3px;border-bottom-left-radius:3px}
.tl-bar.cut-r{border-top-right-radius:3px;border-bottom-right-radius:3px}
.tl-row:hover .tl-bar{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px rgba(60,30,20,.2)}
.tl-out{position:absolute;top:50%;margin-top:-8px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--ink2);z-index:2}
.tl-off{position:absolute;top:50%;margin-top:-8px;font-size:12px;color:var(--ink3);white-space:nowrap}

/* акции: список */
.pcards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.promo-card{border-radius:20px;padding:14px 16px;border:none;text-align:left;display:flex;flex-direction:column;gap:6px;color:var(--ink)}
.pr-top{display:flex;align-items:center;gap:8px}
.pr-top b{font-size:15px}
.pr-dot{width:10px;height:10px;border-radius:5px;flex-shrink:0;background:var(--reg2)}
.promo-card.k-auto .pr-dot{background:var(--auto)}
.pr-sub{font-size:13px;color:var(--ink3)}
.pr-track,.mini-track{height:8px;border-radius:4px;background:rgba(120,120,128,.16);overflow:hidden;position:relative}
.pr-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:linear-gradient(90deg,var(--reg),var(--reg2))}
.promo-card.k-auto .pr-fill{background:linear-gradient(90deg,var(--auto),var(--auto2))}
.promo-card.ended .pr-fill{background:#C7C7CC}
.pr-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--ink2)}
.pr-meta>span:first-child{margin-right:auto}
.live-t{color:var(--ok);font-weight:600}
.p-auto{color:#3B3BA8;background:rgba(91,91,214,.14)}

/* акции: карточка */
.ph{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.55)}
.ph-big{font-size:24px;font-weight:700;letter-spacing:-.02em}
.ph.live .ph-big{color:var(--reg)} .ph.k-auto.live .ph-big{color:var(--auto)}
.ph-track{height:10px;border-radius:5px;background:rgba(120,120,128,.16);position:relative}
.ph-fill{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:linear-gradient(90deg,var(--reg),var(--reg2))}
.ph.k-auto .ph-fill{background:linear-gradient(90deg,var(--auto),var(--auto2))}
.ph-now{position:absolute;top:-4px;width:18px;height:18px;margin-left:-9px;border-radius:9px;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.25);border:3px solid var(--crit)}
.ph-l{display:flex;justify-content:space-between;font-size:12px;color:var(--ink3)}
.desc{white-space:pre-wrap;max-height:160px;overflow:auto;padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.4);color:var(--ink2)}
.pb-row .t span em{font-style:normal}
.warn-t{color:var(--warn);font-weight:600}
.ok-t{color:var(--ok)}
.bl-big{width:34px;height:34px;border-radius:10px;background:#1C1C1E;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pb-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pi-list{max-height:52vh;overflow:auto}
.pi-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto 86px;gap:12px;align-items:center;padding:9px 16px;border-bottom:1px solid var(--line2);cursor:pointer}
.pi-row:last-child{border-bottom:none}
.pi-row input{width:18px;height:18px;accent-color:var(--reg)}
.pi-row .t{display:flex;flex-direction:column;min-width:0}
.pi-row .t b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pi-row .t span{font-size:12px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pi-p{display:flex;flex-direction:column;align-items:flex-end;font-size:13px}
.pi-p span{font-size:11px;color:var(--ink3)}
.pi-row.on{background:rgba(240,88,40,.08)}
.pi-row.dis{opacity:.55;cursor:default}
.pi-row .delta{text-align:right}
.pi-foot{align-items:center}
.pi-count{margin-right:auto;display:flex;flex-direction:column;font-size:13px}

/* сборы */
.col-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:14px}
.col-card{border-radius:24px;padding:16px 18px;border:none;text-align:left;display:flex;flex-direction:column;gap:12px;color:var(--ink);cursor:pointer;transition:transform .12s;min-width:0;overflow:hidden}
.col-card:hover{transform:translateY(-2px)}
.cc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cc-kind{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px}
.cc-kind svg{color:#E04E1E}
.cc-chips{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.cc-kind{min-width:0;flex:1}
.cc-top .pill,.pr-meta .pill,.tl-name .pill{flex-shrink:0}
.kpi .v.vs{font-size:20px;line-height:26px}
.cc-main{display:flex;gap:18px;align-items:center}
.cc-ring{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.cc-ring .rg-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.cc-ring .rg-c b{font-size:22px;font-weight:700;letter-spacing:-.02em}
.cc-ring .rg-c span{font-size:11px;color:var(--ink3)}
.cc-ring.big .rg-c b{font-size:30px}
.ring .rg-track{stroke:rgba(120,120,128,.16)}
.ring .rg-done{stroke:var(--good)}
.ring .rg-cov{stroke:var(--good2)}
.cd{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.cd-t{font-size:20px;font-weight:700;letter-spacing:-.02em}
.cd.big .cd-t{font-size:28px}
.cd-s{font-size:12px;color:var(--ink3);min-height:15px}
.cd-bar{height:8px;border-radius:4px;background:rgba(120,120,128,.16);position:relative;overflow:hidden;margin-top:2px}
.cd-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--good)}
.cd-lbl{display:flex;justify-content:space-between;font-size:11px;color:var(--ink3);gap:8px}
.cd.lv-ok .cd-t{color:#1F7A3A} .cd.lv-ok .cd-fill{background:var(--good)}
.cd.lv-warn .cd-t{color:#A65F00} .cd.lv-warn .cd-fill{background:var(--amber)}
.cd.lv-late .cd-t{color:var(--err)} .cd.lv-late .cd-fill{background:var(--crit)}
.cd.lv-done .cd-t{color:var(--ink)} .cd.lv-done .cd-fill{background:var(--good)}
.cd.lv-none .cd-t{color:var(--ink2)} .cd.lv-none .cd-fill{background:rgba(120,120,128,.3)}
.cc-who{display:flex;flex-direction:column;gap:6px}
.cc-l{font-size:12px;font-weight:600;color:var(--ink2)}
.pchips{display:flex;gap:6px;flex-wrap:wrap}
.pchip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;border-radius:14px;font-size:13px;font-weight:500;background:rgba(255,255,255,.6)}
.pchip.wait{background:rgba(255,210,170,.5)}
.pchip.more{padding:3px 10px;color:var(--ink2)}
.ava.sm{width:24px;height:24px;border-radius:12px;font-size:10px}
.cc-foot{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--ink3);border-top:1px solid var(--line);padding-top:10px}
.cs-hero{display:flex;gap:24px;align-items:center;padding:14px 16px;border-radius:20px;background:rgba(255,255,255,.55)}
.cs-side{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
.rg-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink2)}
.rg-legend span{display:inline-flex;align-items:center;gap:6px}
.rg-legend .lg{width:10px;height:10px;border-radius:5px}
.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.stepper .st{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;position:relative;font-size:12px;color:var(--ink3)}
.stepper .st i{width:14px;height:14px;border-radius:7px;background:#fff;border:2px solid rgba(120,120,128,.35);z-index:1}
.stepper .st::before{content:"";position:absolute;top:6px;left:-50%;right:50%;height:2px;background:rgba(120,120,128,.25)}
.stepper .st:first-child::before{display:none}
.stepper .st b{font-size:12px;font-weight:600;color:var(--ink2)}
.stepper .st.done i{background:var(--good);border-color:var(--good)}
.stepper .st.done::before,.stepper .st.cur::before{background:var(--good)}
.stepper .st.cur i{border-color:var(--reg);box-shadow:0 0 0 4px rgba(240,88,40,.18)}
.stepper .st.cur b{color:var(--ink)}
.stepper.cancelled .st i{border-color:rgba(120,120,128,.35);background:#fff;box-shadow:none}
.tc-row .cd{max-width:260px}
.tc-row .cd-t{font-size:15px}
.tc-row .cd-lbl{display:none}
.cc-ring.sm{width:44px;height:44px}

.cb-tbl .tr{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) 60px 150px 80px}
.cb-tbl .tr.th{position:static;background:transparent}
/* мастер нового сбора */
.wz-steps{display:flex;gap:18px;font-size:13px;color:var(--ink3);flex-wrap:wrap}
.wz-steps span{display:inline-flex;align-items:center;gap:6px}
.wz-steps i{font-style:normal;width:22px;height:22px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:rgba(120,120,128,.16);font-weight:700;font-size:12px}
.wz-steps .cur{color:var(--ink);font-weight:600} .wz-steps .cur i{background:var(--accent);color:#fff}
.wz-steps .done i{background:var(--good);color:#fff}
.wz-kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.wz-kind{border:1.5px solid rgba(60,60,67,.14);background:rgba(255,255,255,.6);border-radius:20px;padding:16px;text-align:left;display:flex;flex-direction:column;gap:6px}
.wz-kind b{font-size:15px}
.wz-kind span{font-size:12px;color:var(--ink3)}
.wz-kind.on{border-color:var(--accent);background:#FFF3EE;box-shadow:0 0 0 4px rgba(240,88,40,.12)}
.wz-ic{width:40px;height:40px;border-radius:12px;background:var(--tint);color:#E04E1E;display:flex;align-items:center;justify-content:center}
.picks{display:flex;flex-direction:column;gap:8px;max-height:42vh;overflow:auto}
.pick{border:1.5px solid rgba(60,60,67,.12);background:rgba(255,255,255,.6);border-radius:16px;padding:10px 14px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:12px;align-items:center}
.pick .t{display:flex;flex-direction:column;min-width:0}
.pick .t span{font-size:12px;color:var(--ink3)}
.pick.on{border-color:var(--auto);background:rgba(91,91,214,.08);box-shadow:0 0 0 4px rgba(91,91,214,.12)}
.mini-track .pr-fill{background:linear-gradient(90deg,var(--auto),var(--auto2))}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:34px 16px;border:2px dashed rgba(60,60,67,.25);border-radius:22px;
  background:rgba(255,255,255,.45);cursor:pointer;text-align:center;color:var(--ink2)}
.drop svg{color:#E04E1E}
.drop b{color:var(--ink);font-size:15px}
.drop.over{border-color:var(--accent);background:#FFF3EE}
.fchip.dt{display:inline-flex;align-items:center;gap:6px}
.fchip.dt input{border:none;background:transparent;font-size:13px;color:inherit}

/* окно поверх страницы */
body.noscroll{overflow:hidden}
.sheet-wrap{position:fixed;inset:0;z-index:40;background:rgba(40,25,20,.22);display:flex;align-items:center;justify-content:center;padding:24px;
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.sheet{width:min(820px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:28px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;
  background:rgba(255,255,255,.78)}
.sh-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.sh-h h2{font-size:21px}
.sh-f{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding-top:4px}
.sh-f.wrap{justify-content:flex-start;padding:0}
.icon-btn{width:34px;height:34px;border-radius:17px;border:none;background:rgba(120,120,128,.14);color:var(--ink2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.u-list{max-height:none}
.u-row{display:grid;grid-template-columns:minmax(0,1fr) auto 76px;gap:12px;align-items:center;padding:9px 16px;border-bottom:1px solid var(--line2);font-size:14px}
.u-row:last-child{border-bottom:none}
.u-row .t{display:flex;flex-direction:column;min-width:0}
.u-row .t b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u-row .t span{font-size:12px;color:var(--ink3)}
.u-row.st-warn{background:rgba(255,235,204,.35)}
.u-what{font-variant-numeric:tabular-nums;text-align:right}
.msg.err{color:var(--err)} .msg.warn{color:var(--warn)}

/* управление */
.modes-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.mode-card{gap:6px}
.m-state{display:flex;align-items:center;gap:10px;font-size:22px}
.m-state .dot{width:12px;height:12px;border-radius:6px}
.m-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}
.switch{width:51px;height:31px;border-radius:16px;border:none;background:rgba(120,120,128,.24);position:relative;flex-shrink:0;padding:0;transition:background .15s}
.switch span{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:14px;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:left .15s}
.switch.on{background:#34C759}
.switch.on span{left:22px}
.row-u{width:100%;border:none;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink)}
.row-u:hover{background:rgba(255,255,255,.35)}
.row-u svg{color:var(--ink3);flex-shrink:0}
.badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.danger{color:var(--err);border-color:rgba(180,35,24,.55)}
.all-chip{align-self:flex-start;padding-left:12px}
.brand-chip:disabled{opacity:.75;cursor:default}
.add-id{min-width:260px}
.busy{opacity:.55;pointer-events:none}

/* телефон */
@media (max-width:900px){
  .app{display:block;padding:0}
  .side{display:none}
  .main{padding:16px 16px 110px}
  .head h1{font-size:32px;line-height:38px}
  .tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;left:14px;right:14px;bottom:18px;height:64px;
    padding:5px;border-radius:32px;z-index:30;background:rgba(255,255,255,.4)}
  .tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:500;color:var(--ink);border-radius:27px}
  .tabs a.on{background:var(--tint);color:var(--accent-text);font-weight:600}
  .two{grid-template-columns:1fr}
  .grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bar{left:12px;right:12px;bottom:92px;padding:8px 8px 8px 16px;gap:8px}
  .bar .btn{height:40px;padding:0 12px;font-size:13px}
  .tbl{display:none}
  .pcards{display:flex;flex-direction:column;gap:10px}
  .pc{border-radius:22px;overflow:hidden}
  .pc-h{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;border:none;background:transparent;text-align:left}
  .pc-h .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .pc-h .tx b{font-size:15px}
  .pc-h .tx span{font-size:13px;color:var(--ink3)}
  .pc-it{padding:10px 14px;border-top:1px solid var(--line2);display:flex;flex-direction:column;gap:6px}
  .pc-it .top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
  .pc-it .top b{font-size:14px}
  .pc-f{display:grid;gap:6px}
  .pc-f.wb{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pc-f.ozon{grid-template-columns:repeat(3,minmax(0,1fr)) 64px}
  .pc-f > label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--ink3)}
  .pc-all{padding:8px 14px 10px;border-top:1px solid var(--line);background:rgba(255,255,255,.22);display:flex;flex-direction:column;gap:6px}
  .jt .tr.th{display:none}
  .jt .tr.jr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px}
  .jt .tr.jr>div:nth-child(5){order:-2;flex:1 1 100%;font-size:15px;font-weight:600}
  .jt .tr.jr>div:nth-child(3),.jt .tr.jr>div:nth-child(6),.jt .tr.jr>div:nth-child(8),.jt .tr.jr>.nil{display:none}
  .jx-detail{padding:4px 16px 12px}
  .jf .jq{margin-left:0}
  .search{min-width:0;flex:1 1 100%}
  .main.has-bar{padding-bottom:230px}
  .toast{top:14px;bottom:auto}
  .tabs.n5{grid-template-columns:repeat(5,minmax(0,1fr))}
  .tabs.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tl-name{width:150px;padding-left:12px}
  .tl-over{left:150px}
  .col-grid{grid-template-columns:1fr}
  .cs-hero{flex-direction:column;align-items:stretch;gap:12px}
  .cs-hero .cc-ring{align-self:center}
  .pi-row{grid-template-columns:22px minmax(0,1fr) 70px}
  .pi-p{grid-column:2/-1;align-items:flex-start;grid-row:2}
  .pick{grid-template-columns:1fr}
  .stepper .st span{display:none}
  .tc-row{flex-wrap:wrap}
  .cb-tbl .tr{grid-template-columns:minmax(0,1fr) 110px}
  .cb-tbl .tr>div:nth-child(2),.cb-tbl .tr>div:nth-child(3),.cb-tbl .tr>div:nth-child(5){display:none}
  .pb-row{flex-wrap:wrap}
  .pb-acts{flex:1 1 100%;justify-content:flex-start;padding-left:46px}
  .tc-row .cd{flex:1 1 100%;max-width:none}
  .sheet-wrap{align-items:flex-end;padding:0}
  .sheet{border-radius:28px 28px 0 0;max-height:92vh;padding:16px 16px 28px}
  .u-row{grid-template-columns:minmax(0,1fr) 64px}
  .u-what{grid-column:1/-1;text-align:left;font-size:13px}
  .badges{display:none}
  .add-id{min-width:0;flex:1 1 100%}
  .modes-grid{grid-template-columns:1fr}
  .row.wrap-m{flex-wrap:wrap}
  .row.wrap-m .t{flex:1 1 100%}
  .u-row{grid-auto-flow:dense}
}
