/* Пульт — телефон. Основа — мягкий дизайн Диетолога (next.css: имена и значения токенов, договор §7.3), из фирменного
   ПРАЙД — знак в шапке, аватар Льва, заголовки карточек как в дашборде (отзыв Жени 24.09: «прошлый дизайн
   приятнее, атрибутику оставить, объединить; темы по времени суток — воздушно»).
   Части суток (theme.js ставит data-daypart и data-theme): утро — тёплый рассвет, день — чистое голубое небо,
   вечер — сиреневый закат (светлые); ночь — тёмная тема с лунным светом и звёздами. «Небо» — верх экрана
   (--sky-top и свечение --glow), ниже карточки на --bg. Красный — только риск (--danger).
   AA 01.10: --ink-3 и --warn (--fat) подобраны на ≥ 4.5 к --bg/--card/--card-2/--track всех частей суток и обеих тем. */
:root{color-scheme:light;
  --kcal:#175B62;--kcal-2:#28747B;--fat:#875820;--carb:#806AAE;
  --bg:#F4F7F8;--card:#fff;--card-2:#E7EFF1;--ink:#17333C;--ink-2:#526A74;--ink-3:#55676F;--line:#D8E2E5;
  --track:#DFEDEF;--on-accent:#fff;--nx-warm:#E4C879;--nx-ground:#E8EFF1;--r:22px;
  --shadow:0 1px 2px rgba(23,51,60,.04),0 10px 28px rgba(23,51,60,.06);
  --accent:var(--kcal);--brand:#152841;--picton:#56C1EB;--live:var(--kcal-2);--warn:var(--fat);--warn-soft:#F6EBDD;
  --danger:#A8402E;--danger-soft:#F7E2DD;
  --sky-top:#E1EEF3;--glow:rgba(255,255,255,.95);--glow2:rgba(86,193,235,.16);
  --safe-b:env(safe-area-inset-bottom,0px);--kb:0px;
  --font:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif}
/* утро: рассвет — персиковое небо, тёплое свечение солнца */
:root[data-daypart=morning]{--sky-top:#F7E6DA;--glow:rgba(255,205,150,.62);--glow2:rgba(255,236,214,.7);
  --bg:#F6F5F2;--card-2:#F0ECE6;--track:#F0E7DD;--line:#E6DFD6;--nx-warm:#E7B97A}
/* день: чистое голубое небо (значения основы) */
:root[data-daypart=day]{--sky-top:#DDEDF4;--glow:rgba(255,255,255,.95);--glow2:rgba(86,193,235,.18)}
/* вечер: сиреневый закат, акцент — сумеречный синий */
:root[data-daypart=evening]{--sky-top:#ECE1F0;--glow:rgba(245,176,150,.45);--glow2:rgba(194,189,241,.45);
  --bg:#F5F4F8;--card-2:#ECE9F3;--track:#E7E3F2;--line:#E0DCE9;--kcal:#3C4C86;--kcal-2:#5A67A6;--nx-warm:#E7A98C}
/* тёмная — мягкая сиреневая Диетолога; ночью — глубже, с луной и звёздами */
:root[data-theme=dark]{color-scheme:dark;
  --kcal:#C2BDF1;--kcal-2:#C2BDF1;--fat:#E0B583;--carb:#C5B3EC;
  --bg:#202939;--card:#2B3547;--card-2:#394059;--ink:#F0F1F8;--ink-2:#BAC6D7;--ink-3:#A6B3C5;--line:#47556B;
  --track:#394059;--on-accent:#252338;--nx-warm:#A9C3CD;--nx-ground:#192332;
  --shadow:none;--warn-soft:#46402F;--danger:#F2A08F;--danger-soft:#4A3036;
  --sky-top:#243049;--glow:rgba(194,189,241,.16);--glow2:rgba(86,193,235,.08)}
:root[data-theme=dark][data-daypart=morning]{--sky-top:#2A2F48;--glow:rgba(231,185,122,.14)}
:root[data-theme=dark][data-daypart=evening]{--sky-top:#2C2A4A;--glow:rgba(245,176,150,.12)}
:root[data-theme=dark][data-daypart=night]{--bg:#1D2433;--card:#28324A;--sky-top:#1C2238;
  --glow:rgba(222,220,255,.20);--glow2:rgba(194,189,241,.10)}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.4 var(--font);-webkit-text-size-adjust:100%;
  touch-action:manipulation;overscroll-behavior-y:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
a{color:var(--kcal)}
.muted{color:var(--ink-2)}
.small{font-size:12px}
.center{text-align:center}
.app{max-width:560px;margin:0 auto;min-height:100%;position:relative}

/* шапка экрана: дата мелко + крупный заголовок + аватар (как «Сегодня» Диетолога) */
.hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 17px 12px}
.hdr-date{font-size:12px;color:var(--ink-2);margin:0 0 5px}
.hdr-date:first-letter{text-transform:uppercase}
.hdr h1{font-size:32px;line-height:1.05;font-weight:650;letter-spacing:-1.2px;margin:0}
.me-btn{width:44px;height:44px;border:0;border-radius:50%;background:var(--track);color:var(--kcal);
  font-size:17px;font-weight:600;position:relative;flex-shrink:0}
.me-btn i{position:absolute;right:0;bottom:1px;width:11px;height:11px;background:var(--nx-warm);
  border:2px solid var(--bg);border-radius:50%}
.me-btn.off i{background:var(--danger)}

.screen{padding-bottom:calc(88px + var(--safe-b))}
.link-line{display:flex;align-items:center;gap:7px;padding:0 17px 10px;font-size:12px;color:var(--ink-2)}
.link-line i{width:8px;height:8px;border-radius:50%;background:var(--kcal);flex:none}
.link-line.warn i{background:var(--warn)}
.link-line.err{color:var(--danger)}
.link-line.err i,.link-line.off i{background:var(--danger)}

.search{display:flex;align-items:center;gap:8px;margin:0 17px 12px;padding:0 14px;border-radius:14px;background:var(--card-2);
  color:var(--ink-2)}
.search input{flex:1;min-width:0;border:0;background:transparent;padding:11px 0;font-size:16px;outline:none;color:var(--ink)}

/* список чатов: карточка со строками (иконка · подпись и время · число справа) */
.list{margin:0 12px;background:var(--card);border-radius:var(--r);overflow:hidden}
.list:empty{display:none}
.row-chat{display:flex;gap:12px;align-items:center;width:100%;padding:12px 14px;border:0;background:none;text-align:left;
  border-bottom:1px solid var(--line)}
.row-chat:last-child{border-bottom:0}
.row-chat:active{background:var(--track)}
.row-body{flex:1;min-width:0}
.row-top{display:flex;align-items:baseline;gap:8px}
.row-name{flex:1;min-width:0;font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-time{font-size:11px;color:var(--ink-2);flex:none}
.row-prev{display:flex;align-items:center;gap:6px;margin-top:2px}
.row-prev span{flex:1;min-width:0;font-size:13px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-prev b{font-weight:500;color:var(--ink)}
.row-chat.empty .row-prev span{font-style:italic}
.badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--kcal);color:var(--on-accent);
  font-size:11px;font-weight:600;display:inline-grid;place-items:center;flex:none;font-style:normal}
.badge.dot{min-width:9px;width:9px;height:9px;padding:0;background:var(--nx-warm)}
.row-lev .row-name{font-size:16px}
.row-segs{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.row-segs em{font-style:normal;font-size:11px;color:var(--ink-2);background:var(--card-2);border-radius:8px;padding:2px 7px}
.row-segs em.on{color:var(--on-accent);background:var(--kcal)}
.tag{font-size:11px;color:var(--warn)}
.group-t{padding:14px 17px 6px;font-size:12px;color:var(--ink-2)}

/* аватары: R15 или инициалы; у Льва — эмодзи на акценте */
.ava{width:46px;height:46px;border-radius:15px;background:var(--track);color:var(--kcal);display:grid;place-items:center;
  font-weight:600;font-size:15px;flex:none;position:relative;overflow:hidden}
.ava img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ava.lev{background:var(--kcal);color:var(--on-accent);font-size:23px}
.ava.sm{width:34px;height:34px;border-radius:11px;font-size:13px}
.ava.lev.sm{font-size:17px}

/* заглушки «скоро» и профиль */
.soon{margin:8px 12px;padding:22px 18px;background:var(--card);border-radius:var(--r);color:var(--ink-2)}
.soon b{display:block;color:var(--ink);font-size:17px;margin-bottom:6px}
.soon p{margin:0 0 10px}
.card{margin:0 12px 12px;background:var(--card);border-radius:var(--r);padding:6px 16px}
.card .row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.card .row:last-child{border-bottom:0}
.card .row.col{flex-direction:column;align-items:stretch}
.section-t{font-size:12px;color:var(--ink-2);padding:10px 0 4px}
.soon-row,.link-row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);
  color:var(--ink);text-decoration:none}
.soon-row{color:var(--ink-2)}
.soon-row small,.link-row small{color:var(--ink-2)}
.link-row:last-child{border-bottom:0}
.actions{display:flex;flex-direction:column;gap:8px;padding:12px 16px}

/* кнопки и сегмент (как chat-scope у Диетолога) */
.btn{border:0;border-radius:14px;padding:12px 14px;background:var(--card-2);color:var(--ink);font-weight:600}
.btn.primary{background:var(--kcal);color:var(--on-accent)}
.btn.danger{background:var(--danger-soft);color:var(--danger)}
.btn:disabled,.btn.off{opacity:.45}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;padding:3px;border-radius:12px;background:var(--card-2)}
.seg button{border:0;background:none;border-radius:10px;min-height:36px;font-size:12px;color:var(--ink-2);padding:4px 6px}
.seg button.on{background:var(--card);color:var(--ink);font-weight:600}
:root[data-theme=dark] .seg button.on{background:var(--kcal);color:var(--on-accent)}
@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .seg button.on{background:var(--kcal);color:var(--on-accent)}}
.seg em{font-style:normal;font-size:10px;margin-left:5px;padding:0 5px;border-radius:8px;background:var(--kcal);color:var(--on-accent)}
.seg em:empty{display:none}

/* нижняя панель из 5 с выделенной центральной кнопкой (Лев) */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  max-width:560px;margin:0 auto;padding:7px 9px calc(8px + var(--safe-b));background:var(--card);border-top:1px solid var(--line)}
.nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:49px;border:0;
  background:none;border-radius:15px;color:var(--ink-2);position:relative}
.nav button[aria-current=page]{background:var(--track);color:var(--kcal)}
.nav b{font-size:10px;font-weight:500}
.nav button[aria-current=page] b{font-weight:600}
.nav .nav-i{width:22px;height:22px;display:block}
.nav .nav-i svg{width:100%;height:100%;display:block}
.nav .center .nav-i{width:48px;height:40px;border-radius:15px;background:var(--kcal);color:var(--on-accent);display:grid;
  place-items:center;margin-top:-5px;font-size:22px}
.nav .center b{color:var(--kcal);font-weight:700}
.nav em{position:absolute;top:3px;left:calc(50% + 6px);font-style:normal;min-width:17px;height:17px;padding:0 5px;border-radius:9px;
  background:var(--danger);color:var(--card);font-size:10px;font-weight:700;display:grid;place-items:center}
.nav em:empty{display:none}

/* плашка связи/версии (§4.4) и тост */
.banner{position:sticky;top:0;z-index:40;margin:0;padding:10px 16px;font-size:13px;display:flex;gap:10px;align-items:center;
  justify-content:space-between;background:var(--card-2);color:var(--ink)}
.banner.err{background:var(--danger-soft);color:var(--danger)}
.banner.warn{background:var(--warn-soft);color:var(--ink)}
.banner button{border:0;border-radius:10px;padding:6px 10px;background:var(--card);color:var(--ink);font-weight:600}
.toast{position:fixed;left:50%;bottom:calc(96px + var(--safe-b));z-index:60;transform:translate(-50%,16px);opacity:0;
  pointer-events:none;max-width:min(92vw,480px);padding:10px 14px;border-radius:14px;background:var(--ink);color:var(--bg);
  font-size:13px;transition:opacity .2s,transform .2s}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* вход */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}
.login-card{width:100%;max-width:380px;background:var(--card);border-radius:var(--r);padding:24px 20px;display:flex;
  flex-direction:column;gap:12px}
.login-card .brand{font-size:13px;color:var(--kcal);font-weight:600}
.login-card h1{margin:0;font-size:30px;font-weight:650;letter-spacing:-1px}
.login-card p{margin:0;font-size:13px}
.login-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-2)}
.login-card select,.login-card input{border:1px solid var(--line);border-radius:14px;background:var(--bg);padding:11px 13px;
  font-size:16px;color:var(--ink)}
.login-card .err{min-height:18px;font-size:13px;color:var(--danger)}

/* переписка — во весь экран, как лента Telegram */
.chat{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;background:var(--bg);max-width:560px;margin:0 auto;
  padding-bottom:var(--kb)}
.chat-hdr{display:flex;align-items:center;gap:8px;padding:10px 12px 8px}
.icon-btn{width:40px;height:40px;border:0;border-radius:12px;background:none;color:var(--ink-2);font-size:24px;flex:none;
  display:grid;place-items:center}
.icon-btn.off{opacity:.4;font-size:18px}
.chat-title{flex:1;min-width:0;display:flex;align-items:center;gap:10px}
.chat-title b{display:block;font-size:16px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-title small{display:block;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-seg{margin:0 12px 8px}
.feed{flex:1;overflow-y:auto;padding:6px 12px 10px;display:flex;flex-direction:column;gap:6px;-webkit-overflow-scrolling:touch}
#feedRows{display:flex;flex-direction:column;gap:6px}
.older{align-self:center;border:0;border-radius:12px;padding:7px 12px;background:var(--card-2);color:var(--ink-2);font-size:12px}
.day{align-self:center;margin:8px 0 4px;padding:3px 10px;border-radius:10px;background:var(--card-2);color:var(--ink-2);font-size:12px}
.unread-line{align-self:stretch;text-align:center;font-size:11px;color:var(--kcal);border-top:1px solid var(--line);
  padding-top:4px;margin:6px 0}
.msg{max-width:86%;align-self:flex-start;padding:9px 12px 7px;border-radius:18px;background:var(--card);word-wrap:break-word;
  overflow-wrap:anywhere;position:relative}
.msg.own{align-self:flex-end;background:var(--kcal);color:var(--on-accent);border-bottom-right-radius:6px}
.msg:not(.own){border-bottom-left-radius:6px}
.msg.cont{margin-top:-3px}
.msg.sw-back{transition:transform .2s ease}
.msg.sw-ready::before{content:"↩";position:absolute;left:-30px;top:50%;margin-top:-12px;width:24px;height:24px;border-radius:50%;
  display:grid;place-items:center;font-size:13px;background:var(--card-2);color:var(--ink)}
.msg .who{font-size:12px;font-weight:600;color:var(--kcal);margin-bottom:2px}
.msg.own .who{color:var(--on-accent);opacity:.85}
.msg .who.assist{color:var(--carb)}
.msg .who.sys{color:var(--ink-2)}
.msg .txt{font-size:15px;line-height:1.38}
.msg .txt blockquote{margin:5px 0;padding:2px 0 2px 9px;border-left:3px solid var(--line);color:var(--ink-2)}
.msg.own .txt a{color:var(--on-accent)}
.msg .txt ul{margin:4px 0;padding-left:18px}
.msg .foot{display:flex;justify-content:flex-end;gap:6px;align-items:center;margin-top:3px;font-size:11px;color:var(--ink-2)}
.msg.own .foot{color:var(--on-accent);opacity:.8}
.msg .quote{border-left:3px solid var(--kcal);padding:2px 8px;margin-bottom:4px;font-size:12px;color:var(--ink-2);border-radius:4px;
  background:var(--card-2)}
.msg.own .quote{border-left-color:var(--on-accent);background:transparent;color:var(--on-accent);opacity:.85}
.msg.pending{opacity:.72}
.msg.failed{outline:2px solid var(--danger)}
.msg .st{font-size:11px;margin-top:3px}
.msg .st button{border:0;background:none;padding:0;color:inherit;text-decoration:underline;font-weight:600}
.msg .deals{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.msg .deals a{font-size:11px}
.msg.sysline{max-width:100%;align-self:stretch;background:transparent;padding:2px 6px;color:var(--ink-2);font-size:12px}
.acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.acts button{border:0;border-radius:11px;padding:7px 11px;font-size:13px;font-weight:600;background:var(--card-2);color:var(--ink)}
.acts button.pri{background:var(--kcal);color:var(--on-accent)}
.acts button.del{background:var(--danger-soft);color:var(--danger)}
.acts button:disabled{opacity:.45}
.acts .note{font-size:12px;color:var(--ink-2);align-self:center}
.typing{align-self:flex-start;display:flex;align-items:center;gap:4px;padding:8px 12px;border-radius:14px;background:var(--card);
  color:var(--ink-2);font-size:12px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--ink-2);animation:blink 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
.typing span{margin-left:6px}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media (prefers-reduced-motion: reduce){.typing i{animation:none}}
.to-bottom{position:absolute;right:16px;bottom:calc(84px + var(--kb));width:42px;height:42px;border-radius:50%;border:0;
  background:var(--card);color:var(--ink);font-size:18px;z-index:5;box-shadow:0 0 0 1px var(--line),var(--shadow);cursor:pointer}
.to-bottom em{position:absolute;top:-4px;right:-4px;font-style:normal;min-width:18px;height:18px;border-radius:9px;
  background:var(--kcal);color:var(--on-accent);font-size:10px;display:grid;place-items:center}
.to-bottom em:empty{display:none}

.reply-bar,.draft{margin:0 12px 6px;padding:8px 10px;border-radius:14px;background:var(--card);display:flex;gap:10px;align-items:flex-start}
.reply-bar .rb{flex:1;min-width:0;border-left:3px solid var(--kcal);padding-left:8px}
.reply-bar b{display:block;font-size:12px;color:var(--kcal)}
.reply-bar span{display:block;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reply-bar button{border:0;background:none;color:var(--ink-2);font-size:18px}
.draft{flex-direction:column;gap:8px}
.draft .d-head{font-size:12px;color:var(--ink-2)}
.draft .d-text{font-size:14px;white-space:pre-wrap}
.draft .d-warn{font-size:12px;padding:6px 9px;border-radius:10px;background:var(--warn-soft);color:var(--ink)}
.gates{border-radius:12px;padding:8px 10px;font-size:12px;display:flex;flex-direction:column;gap:5px;background:var(--card-2)}
.gates.pass{background:var(--track)}
.gates.warn{background:var(--warn-soft)}
.gates.block{background:var(--danger-soft);color:var(--danger)}
.gates .g{color:var(--ink-2);white-space:pre-wrap}
.gates.block .g{color:var(--danger)}
.draft .acts{margin-top:0}

.composer{display:flex;align-items:flex-end;gap:6px;padding:6px 10px 6px;background:var(--bg)}
.composer textarea{flex:1;min-width:0;resize:none;max-height:140px;border:1px solid var(--line);border-radius:18px;background:var(--card);
  padding:10px 14px;font-size:16px;line-height:1.3;outline:none;color:var(--ink);overflow-y:hidden;scrollbar-width:none}
.send-btn{width:44px;height:44px;border-radius:50%;border:0;background:var(--kcal);color:var(--on-accent);font-size:17px;flex:none}
.send-btn:disabled,.send-btn.off{opacity:.4}
.chat-hint{padding:0 16px calc(8px + var(--safe-b));font-size:11px;color:var(--ink-2);min-height:14px}
.chat.kb .chat-hint{padding-bottom:6px}
.empty-feed{align-self:center;margin:30px 0;color:var(--ink-2);font-size:13px}

/* ── «Ждут ок» (этап 3б) ── */
.okc{padding:12px 14px}
.okc.danger{box-shadow:inset 3px 0 0 var(--danger)}
.okc-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.okc-age{margin-left:auto}
.pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--card-2);color:var(--ink-2)}
.pill.ghost{background:none;border:1px solid var(--line)}
.pill.ok{background:var(--track);color:var(--kcal)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.okc-who{display:flex;align-items:center;gap:8px;font-weight:600;margin:2px 0 4px}
.okc-label{font-size:13px;color:var(--ink-2);margin-bottom:4px}
.ok-text{font-size:14px;line-height:1.4;max-height:7.2em;overflow:hidden;position:relative;word-wrap:break-word}
.ok-text.open{max-height:none}
.ok-text a{color:var(--kcal)}
.linkish{border:0;background:none;color:var(--kcal);font:inherit;font-size:12px;font-weight:600;padding:4px 0}
.ok-ask{margin-top:8px;padding:10px 12px;border-radius:14px;background:var(--card-2);font-size:13px}
.ok-fix{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);
  font:inherit;font-size:16px;padding:8px 10px;resize:vertical}
.okc-state{margin-top:8px;font-size:13px;font-weight:600;color:var(--kcal)}
.okc-state.err{color:var(--danger)}
.kp-it{padding:8px 0;border-top:1px solid var(--line)}
.kp-it-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.kp-v{font-size:12px;color:var(--warn);margin-bottom:4px}
.ava.sm{width:28px;height:28px;font-size:11px}
/* ── «Менеджеры» (этап 3б) ── */
.mg{padding:12px 14px}
.mg-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.mg-name{flex:1;min-width:0;display:flex;flex-direction:column}
.mg-name b{font-size:16px}
.mg-num b{font-size:22px;font-weight:650}
.bar{position:relative;height:8px;border-radius:4px;background:var(--track);margin:6px 0 4px;overflow:hidden}
.bar i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:4px;background:var(--kcal)}
.bar i.ok{background:var(--kcal)} .bar i.warn{background:var(--warn)} .bar i.bad{background:var(--danger)}
.bar u{position:absolute;top:-2px;bottom:-2px;width:0;border-right:2px solid var(--ink-2)}
.mg-pct{font-size:12px;color:var(--ink-2)}
.mg-pct b{color:var(--ink)} .mg-pct b.warn{color:var(--warn)} .mg-pct b.bad{color:var(--danger)} .mg-pct b.ok{color:var(--kcal)}
.mg-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin-top:10px}
.mg-kv{display:flex;flex-direction:column;background:var(--card-2);border-radius:12px;padding:8px 10px}
.mg-kv span{font-size:11px;color:var(--ink-2)} .mg-kv b{font-size:15px} .mg-kv small{font-size:11px;color:var(--ink-2)}
.mg-chat{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 10px;border:1px solid var(--line);
  border-radius:12px;background:none;color:var(--ink);font:inherit;font-size:13px;text-align:left}
.mg-chat span:nth-child(2){flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.mg-go{color:var(--ink-2)}
.mg-month{padding:12px 14px}

/* ── разделы из «Ещё» (этап 3б) ── */
button.link-row{width:100%;border:0;border-bottom:1px solid var(--line);background:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer}
.link-row span{display:flex;align-items:center;gap:8px}
.install summary{cursor:pointer;color:var(--ink);padding:2px 0}
.install p{margin:8px 0 0}
.sec-hdr{align-items:center}
.sec-hdr .back{font-size:26px;margin-right:4px}
.sec-err{margin:0 12px 10px;padding:10px 14px;border-radius:14px;background:var(--danger-soft);color:var(--danger);font-size:13px;font-weight:600}
.sec-card{padding:12px 14px}
.sec-card p{margin:6px 0}
.bad{color:var(--danger)} .warn{color:var(--warn)}
.mg-kv.bad b{color:var(--danger)}
.today-ring{display:flex;align-items:center;gap:14px;padding:14px}
.ring{width:124px;height:124px;flex:none}
.ring .trk{fill:none;stroke:var(--track);stroke-width:10}
.ring .fact{fill:none;stroke:var(--kcal);stroke-width:10;stroke-linecap:round}
.ring .fc{fill:none;stroke:var(--nx-warm);stroke-width:10;stroke-linecap:round}
.ring .pace{stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.ring .rt-big{fill:var(--ink);font-size:22px;font-weight:650;text-anchor:middle}
.ring .rt-sm{fill:var(--ink-2);font-size:10px;text-anchor:middle}
.ring-leg{display:flex;flex-direction:column;gap:6px;font-size:13px;min-width:0}
.lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.lg.fact{background:var(--kcal)} .lg.fc{background:var(--nx-warm)} .lg.pace{background:var(--ink);width:3px}
.today-ok{display:flex;align-items:center;gap:10px;width:calc(100% - 24px);padding:14px 16px;border:0;font:inherit;color:var(--ink);text-align:left}
.today-ok span{flex:1;font-weight:600} .today-ok b{font-size:20px;color:var(--kcal)} .today-ok small{color:var(--ink-2)}
.bars{display:flex;align-items:flex-end;gap:5px;height:130px;margin-top:10px}
.bars.sm{height:74px}
.bcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}
.btrack{position:relative;flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}
.btrack i{display:block;width:70%;height:0;border-radius:6px 6px 3px 3px;background:var(--kcal)}
.bcol.dip .btrack i{background:var(--kcal-2);opacity:.6}
.bcol.open .btrack i{background:var(--nx-warm)}
.btrack u{position:absolute;left:8%;right:8%;bottom:0;height:0;border-top:2px dashed var(--ink-2);opacity:.6}
.bcol span{font-size:10px;color:var(--ink-2)}
.cl-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--line)}
.cl-row:last-child{border-bottom:0}
.cl-row .bar{grid-column:1/-1;margin:2px 0}
.cl-n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pills{display:flex;flex-wrap:wrap;gap:6px}
.pill.bad{background:var(--danger-soft);color:var(--danger)}
a.card.tn{display:block;padding:12px 14px;color:var(--ink);text-decoration:none}
.tn-t{font-size:14px;line-height:1.35;margin:2px 0 6px;word-wrap:break-word}
.tn-m{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink-2)}
.tn-d{font-size:12px;margin-top:4px}
.cm-row{padding:10px 0;border-top:1px solid var(--line)}
.cm-row:first-of-type{border-top:0}
.hs-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.hs-t{flex:1;min-width:0}
.quote{border-left:3px solid var(--kcal);padding:2px 8px;margin:6px 0;font-size:13px;color:var(--ink-2)}
.rz-it{margin:6px 0 0;font-size:13px}
.cmd-it{display:flex;align-items:center;gap:12px;width:100%;padding:10px 0;border:0;border-top:1px solid var(--line);background:none;font:inherit;color:var(--ink);text-align:left}
.cmd-it:first-of-type{border-top:0}
.cmd-i{font-size:20px;width:28px;text-align:center}
.cmd-b{flex:1;display:flex;flex-direction:column;min-width:0}
.cmd-b small{color:var(--ink-2);font-size:12px}
.sec-hdr > div{flex:1;min-width:0}
.sec-hdr h1{font-size:25px;line-height:1.15}
.sec-hdr .hdr-date{margin-bottom:2px}

/* ══ дизайн по отзыву Жени 24.09: меньше шума, фирменные элементы ══ */
/* шапка: знак ПРАЙД + «ПУЛЬТ» + дата — как шапка дашборда; заголовок плотнее */
.hdr{padding:14px 17px 10px}
.hdr-date{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.3px}
.hdr-date::before{content:'';width:16px;height:16px;border-radius:3px;background:url(praid.svg) center/cover no-repeat;flex:none}
.hdr h1{font-weight:700;letter-spacing:-.8px}
.me-btn{background:var(--card-2);color:var(--ink)}
.me-btn i{background:var(--live)}
.icon-hdr{width:40px;height:40px;border:0;border-radius:50%;background:none;color:var(--ink-2);display:grid;place-items:center;flex:none}
.icon-hdr svg{width:21px;height:21px}
.hdr-acts{display:flex;align-items:center;gap:4px}
/* строка связи — только когда что-то не так; в порядке — точка на кнопке профиля */
.link-line{padding:0 17px 8px}
/* заголовки карточек — как в дашборде: капс, разрядка, голубая черта */
.section-t{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;
  color:var(--ink-2);padding:12px 0 6px}
.section-t::before{content:'';width:3px;height:11px;border-radius:2px;background:var(--picton);flex:none}
.card{border-radius:var(--r)}
/* списки строками — тише: без лишних подписей, числа табличные */
.row-chat{padding:11px 14px}
.row-prev span{font-size:13px}
.num,.mg-num b,.mg-pct b,.today-ok b,.mg-kv b,.mgc-pct{font-variant-numeric:tabular-nums}
.ava.lev{background:var(--brand)}
.ava.lev img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nav .center .nav-i{background:var(--brand);overflow:hidden;padding:0}
.nav .center .nav-i img{width:100%;height:100%;object-fit:cover;display:block}
.nav .center b{color:var(--ink)}
.nav button[aria-current=page]{background:var(--card-2);color:var(--ink)}
.nav em{background:var(--danger)}
.more-row{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 24px);margin:0 12px 12px;padding:12px 16px;
  border:0;border-radius:var(--r);background:none;color:var(--ink-2);font:inherit;font-size:13px}
.more-row b{font-weight:600;color:var(--ink)}
/* «Ждут ок»: свёрнутая карточка — полоса вида слева, одна строка и превью; раскрытие по тапу */
.okc{padding:12px 14px 12px 16px;position:relative;cursor:pointer}
.okc::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:2px;background:var(--picton)}
.okc.k-irreversible::before{background:var(--danger)}
.okc.k-question::before{background:var(--nx-warm)}
.okc.danger{box-shadow:none}
.okc-top{display:flex;align-items:center;gap:2px 8px;flex-wrap:wrap}
.okc-top b{font-size:14px}
.okc-top .who{flex:1 0 auto;max-width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}   /* #99: тип целиком, возраст — строкой ниже (05.10) */
.okc-top small{color:var(--ink-2);font-size:11px;flex:none;margin-left:auto}
.okc-prev{margin-top:3px;font-size:13px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.okc-meta{margin:8px 0 4px;font-size:11px;color:var(--ink-2)}
.okc.open{cursor:default}
.okc .ok-text{max-height:none}
.okc-hint{margin-top:6px;font-size:11px;color:var(--ink-3)}
/* «Ждут ок» по-человечески (01.10): вопрос записи, объекты, тема, «N-й раз», выбор и «Снято · Отменить» */
.okc-prev.okq{color:var(--ink);font-weight:600}
.okc-ask{margin:2px 0 6px;font-size:14px;font-weight:600;color:var(--ink)}
.ok-objs{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.ok-obj{font-size:11.5px;line-height:1.3;padding:3px 8px;border-radius:10px;background:var(--card-2);color:var(--ink-2);text-decoration:none}
a.ok-obj{color:var(--kcal)}
.ok-again{color:var(--warn);font-weight:600}
/* 04.10 исполнение «Ок» кодом: не ушло — красная карточка; отправляется — спокойная строка без кнопок */
.okc.failed{box-shadow:0 0 0 1.5px var(--danger)}
.okc.failed::before{background:var(--danger)}
.okc-state.exec,.ld-state.exec{color:var(--ink-2)}
.okc-state.note,.ld-state.note{color:var(--warn)}
.ok-dec{display:inline-block;margin-top:6px;border:0;border-radius:10px;padding:3px 8px;font:inherit;font-size:11.5px;font-weight:600;
  background:var(--track);color:var(--ok, var(--kcal));cursor:pointer}
.ok-bulk-n{flex-basis:100%;margin:0}
.okgrp{margin:0 0 10px;border-radius:var(--r);background:var(--track);padding:8px 6px 2px}
.okgrp-t{display:flex;align-items:center;gap:8px;padding:2px 8px 8px;font-size:12px;font-weight:600;color:var(--ink-2)}
.okgrp-t span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.okgrp-t em{font-style:normal;color:var(--ink)}
.okgrp .okc{margin-bottom:6px}
.ok-bulk{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 10px}
.ok-bulk button{border:0;border-radius:12px;padding:7px 10px;font:inherit;font-size:12px;background:var(--card);color:var(--ink-2);cursor:pointer}
.ok-bulk button.del{background:var(--danger-soft);color:var(--danger);font-weight:600}
.ok-bulk button:disabled{opacity:.5;cursor:default}
.ok-pick{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--line);background:var(--card);padding:0;cursor:pointer}
.ok-pick.on{background:var(--kcal);border-color:var(--kcal);box-shadow:inset 0 0 0 3px var(--card)}
.ok-pick.no{opacity:.35;cursor:default;border-style:dashed}
.ok-undo{position:fixed;left:50%;bottom:calc(96px + var(--safe-b));z-index:61;transform:translateX(-50%);display:flex;align-items:center;gap:14px;
  overflow:hidden;padding:11px 14px 11px 18px;border-radius:16px;background:var(--ink);color:var(--bg);font-size:14px;max-width:calc(100% - 32px)}
.ok-undo button{border:0;background:none;color:var(--picton);font:inherit;font-weight:700;padding:2px 4px;cursor:pointer}
.ok-undo-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--picton);transform-origin:left;animation:okUndoBar 5s linear forwards}
@keyframes okUndoBar{to{transform:scaleX(0)}}
@media (prefers-reduced-motion:reduce){.ok-undo-bar{animation:none}}
/* «Менеджеры»: строка — аватар, имя, процент плана крупно, тонкая полоса; детали по тапу */
.mgc{padding:12px 14px;cursor:pointer}
.mgc-top{display:flex;align-items:center;gap:11px}
.mgc-name{flex:1;min-width:0}
.mgc-name b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mgc-name small{display:block;font-size:12px;line-height:1.35;color:var(--ink-2)}   /* прогноз в рублях — до двух строк, без обрезки */
.mgc-pct{font-size:20px;font-weight:700}
.mgc-pct.bad{color:var(--danger)} .mgc-pct.warn{color:var(--warn)}
.mgc .bar{height:5px;margin:9px 0 0}
.mgc .badge{margin-left:2px}
.mgc-more{margin-top:10px}
.mg-kv{background:var(--card-2)}
/* «Сегодня»: свёрнутые строки с числом справа */
.fold{display:flex;align-items:center;gap:10px;width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:none;
  font:inherit;color:var(--ink);text-align:left}
.fold:last-child{border-bottom:0}
.fold span{flex:1}
.fold b{font-size:16px;font-variant-numeric:tabular-nums}
.fold small{color:var(--ink-2)}
.fold-body{padding:4px 0 12px;border-bottom:1px solid var(--line)}
.fold-body:last-child{border-bottom:0}
.today-ring{padding:16px}
.ring .fact{stroke:var(--kcal)}
.ring .fc{stroke:var(--picton);opacity:.55}
.lg.fc{background:var(--picton);opacity:.55}
:root[data-theme=dark] .ring .fc{stroke:var(--nx-warm);opacity:.8}
:root[data-theme=dark] .lg.fc{background:var(--nx-warm);opacity:.8}
@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .ring .fc{stroke:var(--nx-warm);opacity:.8}
  :root:not([data-theme=light]) .lg.fc{background:var(--nx-warm);opacity:.8}}
/* «Ещё»: разделы — простые строки; профиль свёрнут */
.link-row{align-items:center}
.prof{margin:0 12px 12px;background:var(--card);border-radius:var(--r);padding:0 16px}
.prof summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:13px 0;cursor:pointer;font-weight:600}
.prof summary::-webkit-details-marker{display:none}
.prof summary small{color:var(--ink-2);font-weight:400}
.prof[open] summary{border-bottom:1px solid var(--line)}
.prof .actions{padding:12px 0}
/* чат: подсказка под полем — только когда есть что сказать */
.chat-hint:empty{display:none}
.icon-btn.off{opacity:.3}

/* ══ отзыв Жени 24.09 (2): мягкая основа + атрибутика ПРАЙД + небо по времени суток ══ */
body{background:var(--bg)}
.app::before{content:'';position:fixed;left:0;right:0;top:0;height:360px;max-width:560px;margin:0 auto;z-index:0;
  pointer-events:none;transition:background .6s;
  background:radial-gradient(240px 190px at 84% -20px,var(--glow),transparent 72%),
    radial-gradient(320px 220px at 8% -60px,var(--glow2),transparent 70%),
    linear-gradient(180deg,var(--sky-top) 0,var(--bg) 100%)}
:root[data-theme=dark][data-daypart=night] .app::after{content:'';position:fixed;left:0;right:0;top:0;height:220px;
  max-width:560px;margin:0 auto;z-index:0;pointer-events:none;opacity:.85;
  background-image:radial-gradient(1.2px 1.2px at 12% 22%,#fff,transparent),radial-gradient(1px 1px at 27% 58%,#fff,transparent),
    radial-gradient(1.4px 1.4px at 41% 14%,#fff,transparent),radial-gradient(1px 1px at 55% 40%,#fff,transparent),
    radial-gradient(1.2px 1.2px at 68% 20%,#fff,transparent),radial-gradient(1px 1px at 76% 62%,#fff,transparent),
    radial-gradient(1.3px 1.3px at 91% 34%,#fff,transparent),radial-gradient(1px 1px at 33% 82%,#fff,transparent),
    radial-gradient(1px 1px at 6% 70%,#fff,transparent),radial-gradient(1.1px 1.1px at 60% 86%,#fff,transparent)}
main,.screen,#scrLogin,.banner{position:relative;z-index:1}
.card,.list,.prof,.soon,.login-card{box-shadow:var(--shadow)}
.chat{background:linear-gradient(180deg,var(--sky-top) 0,var(--bg) 150px) var(--bg)}
/* шапка — мягче: знак ПРАЙД остаётся, кнопки — белые кружки на небе */
.me-btn{background:var(--card);color:var(--kcal);box-shadow:var(--shadow)}
.me-btn i{background:var(--live)}
.icon-hdr{color:var(--ink-2)}
.section-t::before{background:var(--kcal-2)}
.ava.lev{background:var(--kcal)}
.nav{background:color-mix(in srgb,var(--card) 86%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.nav button[aria-current=page]{background:var(--track);color:var(--kcal)}
.nav .center .nav-i{background:var(--kcal);box-shadow:0 6px 16px color-mix(in srgb,var(--kcal) 30%,transparent)}
.nav .center b{color:var(--kcal)}
.okc::before{background:var(--kcal-2)}
.ring .fc{stroke:var(--nx-warm);opacity:1}
.lg.fc{background:var(--nx-warm);opacity:1}
.search{background:var(--card);box-shadow:var(--shadow)}
.more-row{color:var(--ink-2)}
/* выбор темы: 4 варианта и строка «сейчас …» */
#themeSeg{grid-auto-columns:1fr}
#themeSeg button{font-size:11.5px}
.theme-now{font-size:12px;color:var(--ink-2);margin-top:6px}

/* ══ строка агентов в «Чатах» (§8.2 п.34, заявка 16): фаза 1 — Лев активен, остальные серые «скоро» ══ */
.chats-t{margin:2px 16px 0;padding:6px 0 8px}
.agents{display:flex;gap:8px;overflow-x:auto;padding:2px 12px 12px;scrollbar-width:none}
.agents::-webkit-scrollbar{display:none}
.ag{flex:0 0 auto;width:70px;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;padding:0;
  color:var(--ink);font:inherit;cursor:pointer}
.ag-ava{position:relative;width:62px;height:62px;border-radius:21px;padding:3px;background:var(--card);box-shadow:var(--shadow)}
.ag-ava img,.ag-ava .ph{display:grid;place-items:center;width:100%;height:100%;border-radius:18px;object-fit:cover}
.ag-ava .ph svg{width:28px;height:28px}
.ag-ava .badge{position:absolute;top:-5px;right:-6px;min-width:22px;height:22px;border:2px solid var(--bg)}
.ag b{font-size:12.5px;font-weight:600;line-height:1}
.ag small{font-size:10.5px;color:var(--ink-3);margin-top:-3px;line-height:1}
.ag.off .ag-ava{background:var(--card-2);box-shadow:none}
.ag.off img{filter:grayscale(1);opacity:.5}
.ag.off .ph{background:var(--track);color:var(--ink-3)}
.ag.off small{font-size:9.5px;letter-spacing:-.1px;white-space:nowrap}
.ag.off b{color:var(--ink-2);font-weight:500}
.ask{display:flex;align-items:center;gap:10px;width:calc(100% - 24px);margin:0 12px 12px;padding:10px 12px;border:0;
  border-radius:16px;background:var(--card);box-shadow:var(--shadow);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ask-ava{width:30px;height:30px;border-radius:10px;overflow:hidden;flex:none;background:var(--brand)}
.ask-ava img{width:100%;height:100%;object-fit:cover;display:block}
.ask-t{flex:1;min-width:0;font-size:13.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ask-t b{font-weight:600}
.ask small{flex:none;font-size:11px;color:var(--ink-3)}

/* ══ «Ждут ок» по классам (§2.9, решение Жени 25.09): чипы, цвет полосы, рутина свёрнута ══ */
/* четыре чипа помещаются в 375 px (замер: 369); уже — прокрутка вбок */
.ok-chips{display:flex;gap:5px;overflow-x:auto;padding:0 10px 10px;scrollbar-width:none}
.ok-chips::-webkit-scrollbar{display:none}
.okchip{flex:none;border:0;border-radius:12px;padding:7px 8px;font:inherit;font-size:12px;background:var(--card);
  color:var(--ink-2);box-shadow:var(--shadow);cursor:pointer}
.okchip em{font-style:normal;margin-left:4px;font-weight:600;color:var(--ink)}
.okchip.c-critical em{color:var(--danger)}
.okchip.on{background:var(--kcal);color:var(--on-accent)}
.okchip.on em{color:var(--on-accent)}
.okc.c-critical::before{background:var(--danger)}
.okc.c-decision::before{background:var(--nx-warm)}
.okc.c-routine::before{background:var(--kcal-2)}
.ok-rout{margin-top:2px}

/* ══ чаты «как в Telegram» (аудит 25.09): ожидание, вложения, цитата-переход, галочки, поиск, ветка записи ══ */
.row-prev .wait{flex:none;font-style:normal;font-size:11px;color:var(--ink-3);white-space:nowrap}
.tag.lead{background:var(--track);color:var(--kcal)}
.chat-hdr .chat-title{flex:1;min-width:0}
.chat-hdr small.busy{color:var(--kcal);font-weight:600}
.msg .media{display:flex;align-items:center;gap:7px;margin:2px 0 4px;padding:7px 10px;border-radius:12px;background:var(--card-2)}
.msg.own .media{background:rgba(255,255,255,.14)}
.msg .media span{font-size:18px}
.msg .media b{font-size:13px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg .media small{margin-left:auto;font-size:11px;opacity:.7;flex:none}
.msg .quote.jump{cursor:pointer}
.msg.flash{animation:msgflash 1.2s ease-out}
@keyframes msgflash{0%{box-shadow:0 0 0 3px var(--nx-warm)}100%{box-shadow:0 0 0 0 transparent}}
.msg .tick{letter-spacing:-2px}
.to-bottom em{font-style:normal;position:absolute;top:-6px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  background:var(--kcal);color:var(--on-accent);font-size:11px;font-weight:600;line-height:18px;text-align:center}
.to-bottom em:empty{display:none}
.chat-find{display:flex;align-items:center;gap:6px;margin:0 12px 8px;padding:6px 8px;border-radius:14px;background:var(--card);box-shadow:var(--shadow)}
.chat-find input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:14px;color:var(--ink);outline:none}
.chat-find span{font-size:12px;color:var(--ink-3);white-space:nowrap}
.chat-find button{border:0;background:var(--card-2);color:var(--ink);border-radius:9px;min-width:30px;height:30px;font:inherit}
.msg.hit{box-shadow:0 0 0 2px color-mix(in srgb,var(--nx-warm) 70%,transparent)}
.msg.hit-cur{box-shadow:0 0 0 3px var(--nx-warm)}
.ok-hint{font-size:12px;color:var(--ink-3);margin:4px 0 6px}
.ok-thr{display:block;width:100%;margin-top:10px;padding:8px 10px;border:0;border-radius:10px;background:var(--card-2);color:var(--ink-2);
  font:inherit;font-size:12.5px;text-align:left;cursor:pointer}
.ok-thr.fresh{color:var(--kcal);font-weight:600}
.ok-thr-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.ok-thr-it{padding:7px 10px;border-radius:10px;background:var(--card-2);font-size:13px}
.ok-thr-it.own{background:color-mix(in srgb,var(--kcal) 12%,var(--card))}
.ok-thr-it small{color:var(--ink-3);font-size:11px}

/* §2.5 (65c8710): «ждёт ответа» — ход за нами, заметнее */
.row-prev .wait.ours{color:var(--warn);font-weight:600}

/* ══ ясность (Женя 25.09): свежесть данных и подписи «Менеджеров» ══ */
.fresh-line{margin:0 16px 8px;font-size:12px;color:var(--ink-3)}
.fresh-line.warn{color:var(--warn);font-weight:600}
.mg-legend{margin:0 16px 10px;font-size:12px;line-height:1.4;color:var(--ink-3)}
#secBody .fresh-line{margin:0 4px 8px}

/* ══ §3.4b «Попросить Льва» в чате менеджера: переключатель, просьба, черновик Льва карточкой ══ */
.mgr-mode{margin:0 12px 6px}
.mgr-mode button{min-height:32px}
.hint-link{border:0;background:none;padding:0;color:var(--kcal);font:inherit;font-weight:600;text-decoration:underline}
.ask-note{align-self:flex-end;max-width:86%;padding:8px 12px;border-radius:16px;border:1.5px dashed var(--kcal);background:transparent;font-size:13px}
.ask-note.failed{border-color:var(--danger)}
.ask-note .an-h{font-size:11px;font-weight:600;color:var(--kcal);margin-bottom:2px}
.ask-note .an-t{font-size:14px;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}
.ask-note .an-s{font-size:11px;color:var(--ink-2);margin-top:4px}
.ask-note .an-s button{border:0;background:none;padding:0;color:inherit;text-decoration:underline;font-weight:600}
/* §3.4e: запись голоса, файл над полем, голосовое и файл в пути */
.icon-btn.on{width:44px;height:44px;border-radius:50%;background:var(--kcal);color:var(--on-accent);font-size:17px}
.composer.rec textarea,.composer.rec #photoBtn,.composer.rec .ask-scope,.composer.rec #sendBtn{display:none}
.rec-bar{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 4px 0 14px;border-radius:18px;background:var(--card);border:1px solid var(--line)}
.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);flex:none;animation:rec-blink 1s steps(2,start) infinite}
@keyframes rec-blink{to{opacity:.25}}
@media (prefers-reduced-motion:reduce){.rec-dot{animation:none}}
.rec-bar b{font-size:15px;font-variant-numeric:tabular-nums;color:var(--ink)}
.rec-hint{flex:1;min-width:0;font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rec-x{width:36px;height:36px;border:0;border-radius:50%;background:var(--track);color:var(--ink-2);font-size:15px;flex:none}
.attach-bar{margin:0 12px 6px;padding:8px 10px;border-radius:14px;background:var(--card);display:flex;gap:10px;align-items:center}
.attach-bar .ab-thumb{width:44px;height:44px;border-radius:10px;object-fit:cover;flex:none}
.attach-bar .ab-ico{width:44px;height:44px;border-radius:10px;background:var(--track);display:grid;place-items:center;font-size:20px;flex:none}
.attach-bar .ab-t{flex:1;min-width:0}
.attach-bar b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attach-bar span{font-size:12px;color:var(--ink-2)}
.attach-bar button{width:32px;height:32px;border:0;background:none;color:var(--ink-2);font-size:16px;flex:none}
.msg .pv{font-size:13px;font-weight:600;margin-bottom:2px}
/* §3.4b v2: ожидание ответа Льва, пузыри «✍️ Просьба Льву» и «Лев → тебе», чипы частых просьб, «этому · всем» */
.ask-wait{align-self:flex-start;padding:2px 4px;font-size:12px;color:var(--ink-2)}
.msg.about{background:transparent;color:var(--ink);border:1.5px dashed color-mix(in srgb,var(--kcal) 55%,var(--line));box-shadow:none}
.msg.about .foot{color:var(--ink-3)}
.msg.about:not(.own){border-color:color-mix(in srgb,var(--fat) 60%,var(--line))}
.msg.about .who{color:var(--kcal)}
.msg.about:not(.own) .who{color:var(--fat)}
.msg.about .who span{font-weight:500;color:var(--ink-3)}
.ask-chips{display:flex;gap:6px;overflow-x:auto;padding:0 12px 6px;scrollbar-width:none}
.ask-chips::-webkit-scrollbar{display:none}
.ask-chips .chip{flex:none;min-height:32px;padding:0 12px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:13px;white-space:nowrap}
.ask-scope{display:flex;flex:none;align-self:center;padding:2px;border-radius:14px;background:var(--track)}
.ask-scope button{min-height:36px;padding:0 8px;border:0;border-radius:12px;background:none;color:var(--ink-2);font:inherit;font-size:12px}
.ask-scope button.on{background:var(--card);color:var(--ink);font-weight:600}
.ask-scope button[data-askscope="all"].on{background:var(--fat);color:var(--on-accent)}
.ldraft{align-self:stretch;padding:10px 12px;border-radius:16px;background:var(--card);border:1px solid color-mix(in srgb,var(--kcal) 35%,var(--line))}
.ldraft.done{opacity:.7}
.ld-h{display:flex;align-items:baseline;gap:8px;font-size:12px;color:var(--kcal)}
.ld-h small{margin-left:auto;color:var(--ink-3);font-size:11px}
.ld-text{margin-top:6px;padding:8px 10px;border-radius:12px;background:var(--card-2);font-size:14px;line-height:1.38;overflow-wrap:anywhere}
.ld-state{margin-top:7px;font-size:12px;font-weight:600;color:var(--kcal)}
.ld-state.err{color:var(--danger)}

/* ══ d05cc64: подпись гейта над текстом причины ══ */
.gates .g b{display:block;font-weight:700;color:var(--ink);margin-bottom:1px}
.gates.block .g b{color:var(--danger)}

/* ══ P3 обязательства (§3.4c): полосы, карточка с кнопками, «почему» ══ */
.cm-band{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin:12px 2px 6px}
.cm-band:first-of-type{margin-top:4px}
.cmc{cursor:pointer}
.cm-row.cmc.closed .tn-t{color:var(--ink-2)}
.card.cmc.open{margin:6px 0;padding:12px 13px;box-shadow:none;border:1px solid var(--line)}
.cmc .pill.ok{background:var(--track);color:var(--kcal)}
.cm-why{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);
  padding:9px 11px;font:inherit;font-size:14px}

/* ══ «Продажи» (макет 768bd1f): переключатель, месяц, направления, лента ══ */
.sales-seg{margin:0 14px 10px}
.sl-big b{font-size:22px;font-weight:800}
.sl-bad{color:var(--danger);font-weight:700;font-size:12.5px;margin-top:2px}
.sl-ok{color:var(--kcal);font-weight:700;font-size:12.5px;margin-top:2px}
.sl-leg{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:10.5px;color:var(--ink-3)}
.sl-leg .lg{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:0}
.sl-st{margin:14px 18px 6px}
.sl-dr{display:grid;grid-template-columns:1fr auto;gap:3px 8px;font-size:13px;padding:6px 0}
.sl-dr + .sl-dr{border-top:1px solid var(--line)}
.sl-dr em{font-style:normal;font-weight:800;color:var(--kcal)}
.sl-dr .bar{grid-column:1/-1;margin:0}
.sl-dr small{grid-column:1/-1;color:var(--ink-3);font-size:11px}
.sl-pe{display:flex;gap:9px;padding:8px 0;font-size:13px}
.sl-pe + .sl-pe{border-top:1px solid var(--line)}
.sl-pe .s{width:3px;border-radius:2px;background:#3BAA72;flex:none}
.sl-pe.kp .s{background:#C9A24B}
.sl-pe .t{flex:1;min-width:0}
.sl-pe .t a{color:inherit;text-decoration:none}
.sl-pe .t small{display:block;font-size:11px;color:var(--ink-3);margin-top:1px}
.sl-pe .a{font-weight:800;color:var(--sl-won);white-space:nowrap}
.sl-pe.kp .a{color:var(--sl-kp)}
.mg-kv.bad b{color:var(--danger)}
/* ниже первого экрана — раскладка по мере прокрутки: первый заход в «Продажи» быстрее */
.sl-lazy{content-visibility:auto;contain-intrinsic-size:auto 420px}

/* «Продажи»: правки приёмки 27.09 — месяц в шапке, плитки без внешней карточки, цвета ленты по теме, contain */
:root{--sl-won:#287A51;--sl-kp:#8A5B22}               /* AA на светлой карточке */
:root[data-theme=dark]{--sl-won:#8FE0B3;--sl-kp:#E9C28E}
@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--sl-won:#8FE0B3;--sl-kp:#E9C28E}}
.sales-mon{font-size:15px;font-weight:600;color:var(--ink-3);margin-left:4px}
.sl-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 14px 10px}
.sl-tiles .mg-kv{background:var(--card);border-radius:16px;padding:10px 12px;box-shadow:0 1px 2px rgba(23,51,60,.04),0 8px 20px rgba(23,51,60,.05);contain:content}
.sl-st small{font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink-3);margin-left:6px}
.sl-c,.sl-lazy .sl-dr,.mgc{contain:content}

/* «Продажи» · «Воронка» и подиум (§2.8, 28.09) — с дашборда, цвета по теме приложения */
.fn-box{padding:6px 12px;border-top:3px solid var(--picton)}
.fn-box.cu{border-top-color:#C77F43}
.fn-row{--dot:#9AA8BC;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:8px 0;font-size:13.5px}
.fn-row + .fn-row{border-top:1px solid var(--line)}
.fn-dot{width:9px;height:9px;border-radius:50%;background:var(--dot)}
.fn-row.b-kp{--dot:#3A7BD5}.fn-row.b-approved,.fn-row.b-won{--dot:#3BAA72}.fn-row.b-in_production{--dot:#3498DB}
.fn-row.b-ready{--dot:#F39C12}.fn-row.b-shipped{--dot:var(--picton)}.fn-row.b-lost{--dot:var(--danger)}
.fn-row.b-kp .fn-n,.fn-row.b-won .fn-n{font-weight:700}
.fn-row.b-won .fn-n{color:var(--sl-won)}
.fn-row.b-lost .fn-n,.fn-row.b-lost .fn-c{color:var(--danger)}
.fn-c{font-size:17px;font-weight:800;min-width:28px;text-align:right;font-variant-numeric:tabular-nums}
.fn-s{min-width:74px;text-align:right;color:var(--ink-2);font-size:12.5px;white-space:nowrap}
.fn-note{margin:4px 18px 14px}
.pod{display:grid;grid-template-columns:1fr 1.12fr 1fr;gap:8px;align-items:end;margin:0 14px 12px}
.pod-c{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);background:var(--card);border-radius:16px;
  padding:8px 6px 9px;color:var(--ink);font:inherit;text-align:center;box-shadow:0 1px 2px rgba(23,51,60,.04),0 8px 20px rgba(23,51,60,.05)}
.pod-c.p1{border-color:#E3A92A;transform:translateY(-6px)}
.pod-c.p3{border-color:rgba(199,127,67,.5)}
.pod-md{font-size:17px;line-height:1}
.pod-c .ava{width:40px;height:40px;margin:3px 0 2px}
.pod-c b{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pod-c em{font-style:normal;font-weight:800;font-size:14px;color:var(--sl-won)}
.pod-c small{font-size:10.5px;color:var(--ink-3)}

/* ══ P4 файлы: цвета общего модуля (shared/files.css) — от тем приложения ══ */
:root{--pf-bg:var(--card-2);--pf-ink:var(--ink);--pf-ink2:var(--ink-2);--pf-line:var(--line);--pf-acc:var(--kcal);--pf-on-acc:var(--on-accent)}
.msg.own .pf-card{background:rgba(255,255,255,.14)}
.msg.own .pf-meta b,.msg.own .pf-meta small,.msg.own .pf-btn{color:var(--on-accent)}
.msg.own .pf-btn{border-color:rgba(255,255,255,.4)}

/* ══ чаты (28.09): меню сообщения и «Переслать» — нижний лист, как в Telegram ══ */
.msheet{position:fixed;inset:0;z-index:1500}
.msheet[hidden]{display:none}
.msheet-bg{position:absolute;inset:0;background:rgba(10,20,25,.38)}
.msheet-box{position:absolute;left:0;right:0;bottom:0;max-height:72vh;overflow:auto;background:var(--card);border-radius:18px 18px 0 0;
  padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 30px rgba(0,0,0,.18)}
.msheet-t{padding:8px 8px 10px;font-size:12.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msheet-b{display:block;width:100%;text-align:left;border:0;background:none;padding:13px 10px;font-size:16px;color:var(--ink);border-radius:12px}
.msheet-b:active{background:var(--card-2)}
.msheet-b.cancel{margin-top:4px;text-align:center;color:var(--ink-2);border-top:1px solid var(--line);border-radius:0}

/* ══ «⚡ Сценарии» (§3.4d) ══ */
.scn-hdr{font-size:19px;line-height:1}
.scn-it{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;background:none;padding:11px 2px;border-top:1px solid var(--line);color:var(--ink);font:inherit}
.scn-it:first-child{border-top:0}
.scn-it .scn-i{font-size:21px;flex:none;width:28px;text-align:center}
.scn-it .cmd-b{flex:1;min-width:0;display:flex;flex-direction:column}
.scn-it .cmd-b small{color:var(--ink-2);font-size:12px;line-height:1.35}
.scn-it[disabled]{opacity:.5}
.scn-it.busy{opacity:.55}
.scn-it.soon{opacity:.45}
.scn-off{display:flex;flex-direction:column;gap:2px;opacity:.65}
.scn-off small{color:var(--ink-2)}
.scn-row{display:grid;grid-template-columns:20px 1fr auto;gap:9px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:13.5px}
.scn-row:first-of-type{border-top:0}
.scn-row .scn-t small{display:block;color:var(--ink-2);font-size:11.5px}
.scn-row .scn-time{font-size:12px;color:var(--ink-2);text-align:right}
.scn-row.failed .scn-res,.scn-row.failed b{color:var(--danger)}
.scn-row.ok .scn-res{color:var(--kcal)}
.scn-row.off{opacity:.5}
.scn-cmds summary{cursor:pointer;font-weight:600;padding:2px 0}
.msheet-txt{white-space:pre-wrap;background:var(--card-2);border-radius:12px;padding:12px;margin:0 6px 8px;font-size:14.5px;line-height:1.45;color:var(--ink)}
.msheet-note{font-size:12.5px;color:var(--ink-2);margin:0 8px 6px}

/* ══ «За ними / За нами» (R18, §2.19) ══ */
.db-box .cm-band{margin-top:6px}
.db-card{margin:8px 0;padding:12px 13px}
.db-card.hot{box-shadow:inset 3px 0 0 var(--danger)}
.db-card .btn-link{font-size:13px;color:var(--ink-2);align-self:center}
.cm-hist summary{cursor:pointer;font-weight:600;padding:2px 0}
p.warn{color:var(--danger)}

/* ══ агенты в чатах (§3.8) ══ */
.ava.agv{flex:none;position:relative;overflow:hidden;background:var(--card-2);color:var(--ink-2)}
.ava.agv .ph{display:grid;place-items:center;width:100%;height:100%}
.ava.agv .ph svg{width:58%;height:58%}
.ag-list{margin-top:6px}
#msg:disabled{opacity:.55}

html[data-face=desk] .ok-undo{bottom:24px}
/* «Всем» по очереди (01.10): полоса над лентой чата менеджера */
.all-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--track);font-size:13px;color:var(--ink-2)}
.all-bar span{flex:1;min-width:0}
.all-bar button{border:0;border-radius:10px;padding:6px 10px;font:inherit;font-size:12.5px;background:var(--card);color:var(--ink);cursor:pointer}
.all-bar button.pri{background:var(--kcal);color:var(--on-accent);font-weight:600}
/* «Центр» без R18 (показ 06.10): одна карточка «Ждут твоего ок» на всю ширину */
html[data-face=desk] .hm-need.one{grid-template-columns:1fr}
html[data-face=desk] .hm-sub{font-size:12px;color:var(--ink-2);margin-left:2px}
/* кнопка «вниз» на вебе: бейдж — токены бейджа (тёмная #3e6a97 / белый 5.66; акцент #5288c1 давал 3.72) */
html[data-face=desk] .to-bottom em{background:var(--badge-bg);color:var(--badge-fg)}
/* «Ждут ок»: строка прохода по очереди — текст слева, как у остальных строк-ссылок */
.ok-allq{text-align:left;gap:10px}
/* шапка чата: длинная подпись (пауза мозга, «Лев готовит…») обрезается многоточием, а не уходит под ⚡ и 🔍 (матрица 02.10) */
.chat-title > div{min-width:0;flex:1}
