/* app.css — дом7я.рф. Цвета, шрифты, размеры — ТОЛЬКО из tokens.css (сдача дизайнеров).
   Порядок: 1) совместимость имён для карточек, перенесённых из артефакта; 2) каркас и компоненты из макета
   дизайнеров (макет.html 11.10, без панели макета); 3) карточки волн 1–3 (Разобрать, Готовые, Вопросы, Хронология);
   4) свои части волны Б (вход по заявке, книжка-мессенджер, диктовка, «Мои дела», устройства). */
:root{
  --muted:var(--fg-2); --f-body:var(--font-body); --f-display:var(--font-display); --f-mono:var(--font-mono);
  --r:var(--r-m); --c-bolt:var(--ctx-bolt); --c-kart:var(--ctx-kart); --c-none:var(--ctx-none);
  --c-lich:#C0507E; --c-sys:var(--info); --sec:var(--accent);
}

/* ── 2. макет дизайнеров ── */

/* Каркас дом7я.рф (⚡-🔩-BOLT-DESIGN, 11.10). Только токены из tokens.css — ни одного «живого» цвета ниже. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:400 var(--fs-m)/1.5 var(--font-body);min-height:100vh;overflow-x:hidden}
body::before{content:"";position:fixed;inset:-20vh -20vw auto auto;width:70vw;height:60vh;background:radial-gradient(closest-side,var(--glow-1),transparent);filter:blur(60px);pointer-events:none;z-index:0}
body::after{content:"";position:fixed;inset:auto auto -20vh -20vw;width:60vw;height:50vh;background:radial-gradient(closest-side,var(--glow-2),transparent);filter:blur(60px);pointer-events:none;z-index:0}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}
[hidden]{display:none!important}
.mono,.when{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.when{font-size:var(--fs-xs);color:var(--fg-2)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- панель макета (не часть сайта) ---------- */

/* ---------- каркас ---------- */
.app{position:relative;z-index:1;min-height:100vh}
.side{display:none}
.top{position:sticky;top:0;z-index:20;background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border-bottom:1px solid var(--line);padding:calc(var(--safe-t) + 10px) 16px 10px}
.top-row{display:flex;align-items:center;gap:10px;justify-content:space-between}
main.main{padding:16px 16px calc(var(--bar-h) + var(--safe-b) + 28px);max-width:var(--content-max);margin:0 auto}
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0 14px}
.page-h h1{font:var(--fw-display) var(--fs-h1)/1.15 var(--font-display);letter-spacing:var(--ls-display);margin:0}
.page-h p{margin:2px 0 0;color:var(--fg-2);font-size:var(--fs-s)}

/* логотип: содержимое меняется по разделу (data-ctx) */
.brand-logo{display:flex;align-items:center;gap:8px;min-width:0;color:var(--fg);text-decoration:none}
.brand-logo svg{display:block}
.brand-logo .bl{display:flex;align-items:center;gap:4px}
.brand-logo .m{width:30px;height:35px}
.brand-logo .w{width:30px;height:32px}
.brand-logo .kart-mark{width:42px;height:42px;flex:0 0 42px;background:var(--brand-mark) center/contain no-repeat}
.login .kart-stack{width:180px;height:120px;background:var(--brand-logo-stack) center/contain no-repeat}
.brand-logo .none-i{width:32px;height:32px;border-radius:10px;background:var(--ink);color:var(--ink-fg);display:grid;place-items:center}
.brand-logo .none-i svg{width:18px;height:18px}
.brand-logo .t{display:grid;line-height:1.1}
.brand-logo .t b{font:var(--fw-strong) 14px var(--font-body)}
.brand-logo .t small{font:400 11px var(--font-mono);color:var(--fg-2)}
[data-ctx="bolt"] .brand-logo [data-for]:not([data-for="bolt"]),
[data-ctx="kart"] .brand-logo [data-for]:not([data-for="kart"]),
[data-ctx="none"] .brand-logo [data-for]:not([data-for="none"]){display:none}

/* переключатель раздела */
.ctx{display:flex;gap:3px;padding:3px;background:var(--sunk);border-radius:var(--r-pill);overflow-x:auto;scrollbar-width:none;max-width:100%}
.ctx button{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:0;border-radius:var(--r-pill);background:none;color:var(--fg-2);font-weight:600;font-size:13px;white-space:nowrap}
.ctx button i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.ctx button[aria-pressed="true"]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-1)}
.ctx .n{font:600 11px var(--font-mono);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--accent-ink);display:inline-grid;place-items:center}
.top .ctx{margin-top:10px}
@media (max-width:1023px){.top .ctx button{flex:1 1 auto;justify-content:center;padding:0 8px;gap:5px}.top .ctx .n{min-width:16px;height:16px;font-size:10px}}
@media (max-width:400px){.top .ctx button i{display:none}}
.theme-btn{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);min-width:var(--tap);justify-content:center;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);font-size:13px;font-weight:600}
.theme-btn svg{width:18px;height:18px}
.theme-btn .lab{display:none}

/* нижняя навигация (телефон) */
.bnav{position:fixed;left:10px;right:10px;bottom:calc(var(--safe-b) + 10px);z-index:20;display:grid;grid-template-columns:repeat(5,1fr);height:var(--bar-h);padding:6px;border-radius:var(--r-xl);background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-line);box-shadow:var(--shadow-2)}
.bnav button{position:relative;display:grid;place-items:center;gap:1px;border:0;background:none;border-radius:var(--r-l);color:var(--fg-2);font-size:11px;font-weight:600;padding:4px 2px;min-width:0}
.bnav svg{width:22px;height:22px}
.bnav button[aria-current="page"]{background:var(--accent);color:var(--accent-ink)}
.bnav .plus{align-self:start;justify-self:center;margin-top:-26px;width:64px;height:64px;border-radius:50%;background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 5px var(--bg),var(--shadow-2);display:grid;place-items:center;padding:0}
.bnav .plus svg{width:30px;height:30px}
.bnav .plus:active{transform:scale(.94)}
.bnav .n{position:absolute;top:2px;right:calc(50% - 22px);font:600 10px var(--font-mono);min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--ink);color:var(--ink-fg);display:grid;place-items:center}
.sheet{position:fixed;inset:0;z-index:40;background:var(--scrim);display:flex;align-items:flex-end}
.sheet .in{width:100%;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:10px 16px calc(var(--safe-b) + 18px);display:grid;gap:6px;animation:up var(--dur-in) var(--ease)}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--line-2);justify-self:center;margin-bottom:6px}
.sheet .it{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 12px;border:0;border-radius:var(--r-m);background:var(--surface-2);font-weight:600;text-align:left}
.sheet .it svg{width:22px;height:22px;color:var(--fg-2)}
.sheet .it .n{margin-left:auto}
@keyframes up{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}

/* ---------- Быстрый ввод «＋» ---------- */
.qsheet{position:fixed;inset:0;z-index:45;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center}
.qsheet .in{width:100%;max-width:560px;height:calc(100% - var(--safe-t) - 28px);background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:10px 16px calc(var(--safe-b) + 16px);display:flex;flex-direction:column;gap:14px;overflow:auto;animation:up var(--dur-in) var(--ease)}
.qsheet .grab{width:40px;height:4px;border-radius:2px;background:var(--line-2);align-self:center;flex:0 0 auto}
.qhead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.qhead h2{margin:0;font:var(--fw-display) var(--fs-xl)/1.2 var(--font-display);letter-spacing:var(--ls-display)}
.qrec{display:grid;justify-items:center;gap:10px;padding:18px 12px;border-radius:var(--r-xl);background:var(--surface-2);border:1px solid var(--line)}
.qrec .big{width:96px;height:96px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;box-shadow:var(--shadow-2)}
.qrec .big svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.qrec .hint{color:var(--fg-2);font-size:var(--fs-s);text-align:center}
.qrec.on{background:var(--crit-bg);border-color:var(--crit-solid)}
.qrec .timer{font:600 32px var(--font-mono);font-variant-numeric:tabular-nums;color:var(--fg);display:flex;align-items:center;gap:10px}
.qrec .timer::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--crit-solid);animation:pulse 1s infinite}
.qrec .wave{display:flex;align-items:center;gap:3px;height:44px;width:100%;justify-content:center;overflow:hidden}
.qrec .wave s{flex:0 0 4px;border-radius:2px;background:var(--crit-solid);opacity:.85}
.qrec .row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.qvoice{display:flex;align-items:center;gap:8px}
.qvoice .voice{flex:1}
.qmedia{display:flex;gap:8px;flex-wrap:wrap}
.qmedia .add svg{width:20px;height:20px;flex:0 0 20px}
.qmedia .add{display:inline-flex;align-items:center;gap:8px;flex:1 1 140px;justify-content:center}
.qthumbs{display:flex;gap:8px;overflow-x:auto;padding-top:6px}
.qthumbs figure{position:relative;margin:0;flex:0 0 auto}
.qthumbs img{width:84px;height:110px;object-fit:cover;border-radius:var(--r-s);border:1px solid var(--line);display:block}
.qthumbs .x{position:absolute;top:-6px;right:-6px;width:28px;height:28px;border-radius:50%;border:2px solid var(--surface);background:var(--ink);color:var(--ink-fg);display:grid;place-items:center;font-size:13px;line-height:1;padding:0}
.qthumbs .x::after{content:"";position:absolute;inset:-8px}
.qtext{width:100%;min-height:96px;resize:vertical;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface-2);padding:12px 14px;font-size:15px;line-height:1.45}
.qctx{display:flex;gap:6px;flex-wrap:wrap}
.qctx .chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.qsend{margin-top:auto;display:grid;gap:6px}
.qsend .btn{width:100%;min-height:52px;font-size:16px;border-radius:var(--r-l)}
.qsend .btn[disabled]{opacity:.45;cursor:default}
.toast{position:fixed;left:16px;right:16px;margin:0 auto;width:max-content;bottom:calc(var(--bar-h) + var(--safe-b) + 28px);z-index:50;display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:12px 16px;border-radius:var(--r-l);background:var(--ink);color:var(--ink-fg);font-weight:600;box-shadow:var(--shadow-2);animation:up var(--dur-in) var(--ease)}
.toast button{border:0;background:none;color:inherit;text-decoration:underline;font-weight:600;min-height:var(--tap)}
@media (min-width:1024px){.qsheet{align-items:center}.qsheet .in{height:auto;max-height:90vh;border-radius:var(--r-xl)}.toast{bottom:28px}}
.side .addbtn{min-height:48px;border-radius:var(--r-l)}
/* кружевной узор Кузарта — только вход в тёмной теме; файл kart/kart-pattern.svg, токены --login-pattern* в теме kart */
.login::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0}
[data-theme="kart"] .login::before{opacity:var(--login-pattern-opacity,.05);background-image:var(--login-pattern);background-size:var(--login-pattern-size,96px) var(--login-pattern-size,96px)}
.login .box{position:relative}

/* ---------- Строка ввода книжки + скрепка 📎 ---------- */
.composer{position:fixed;left:10px;right:10px;bottom:calc(var(--safe-b) + var(--bar-h) + 44px);z-index:19;display:flex;align-items:flex-end;gap:6px;padding:6px;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2)}
.composer .ib{flex:0 0 var(--tap);height:var(--tap);border-radius:50%;border:0;background:none;color:var(--fg-2);display:grid;place-items:center;font-size:20px}
.composer textarea{flex:1;min-width:0;min-height:var(--tap);max-height:120px;resize:none;border:0;background:none;padding:11px 4px;font-size:15px;line-height:1.4}
.composer .mic{flex:0 0 var(--tap);height:var(--tap);touch-action:none}
.composer.is-rec{border-color:var(--crit-solid);background:var(--crit-bg)}
.composer.is-rec .mic{background:var(--crit-solid);color:var(--ink-fg);transform:scale(1.15)}
.composer .rt{display:none;flex:1;align-items:center;gap:8px;min-height:var(--tap);color:var(--crit);font-weight:600;font-size:14px}
.composer.is-rec .rt{display:flex}.composer.is-rec textarea,.composer.is-rec .ib{display:none}
[data-tab-cur="feed"] main.main{padding-bottom:calc(var(--bar-h) + var(--safe-b) + 130px)}
.attach{position:fixed;inset:0;z-index:46;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center}
.attach .in{width:100%;max-width:560px;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:10px 16px calc(var(--safe-b) + 18px);display:grid;gap:8px;animation:up var(--dur-in) var(--ease)}
.attach .grab{width:40px;height:4px;border-radius:2px;background:var(--line-2);justify-self:center}
.attach .row3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.attach .opt3{display:grid;justify-items:center;gap:6px;padding:16px 6px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface-2);font-weight:600;font-size:14px}
.attach .opt3 i{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-style:normal}
.attach .opt3 i svg{width:26px;height:26px}
.attach .opt3 small{font-weight:400;color:var(--fg-2);font-size:12px;text-align:center}
.attach .recent{display:flex;gap:6px;overflow-x:auto}
.attach .recent img{width:78px;height:78px;object-fit:cover;border-radius:var(--r-s);flex:0 0 auto}
.pv{position:fixed;inset:0;z-index:47;background:var(--bg-2);display:flex;flex-direction:column}
.pv .bar{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-t) + 8px) 12px 8px;gap:8px}
.pv .stage{flex:1;min-height:0;display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px}
.pv .stage img{height:100%;max-height:52vh;width:auto;max-width:86%;object-fit:contain;border-radius:var(--r-l);scroll-snap-align:center;background:var(--sunk)}
.pv .bottom{display:grid;gap:10px;padding:12px 16px calc(var(--safe-b) + 16px);background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-2)}
.pv .cap{display:flex;gap:8px;align-items:flex-end}
.pv .cap textarea{flex:1;min-height:var(--tap);resize:none;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface-2);padding:10px 12px}
.pv .send{flex:0 0 52px;height:52px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:22px;font-weight:700}

.attach .recent{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.attach .ri{position:relative;flex:0 0 96px;height:120px;border:0;padding:0;border-radius:var(--r-s);overflow:hidden;background:var(--sunk)}
.attach .ri img{width:100%;height:100%;object-fit:cover;display:block}
.attach .ri .ck{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:2px solid var(--on-media);background:var(--media-shade);color:var(--accent-ink);display:grid;place-items:center;font:700 12px var(--font-mono)}
.attach .ri[aria-pressed="true"] .ck{background:var(--accent);border-color:var(--accent)}
.attach .ri[aria-pressed="true"] img{transform:scale(.9);border-radius:var(--r-xs)}
.attach .ri .du{position:absolute;left:6px;bottom:6px;font:600 11px var(--font-mono);color:var(--on-media);background:var(--media-shade);padding:2px 6px;border-radius:6px}
.attach .selbar .btn{min-height:40px;height:40px;flex:0 0 auto}
.attach .selbar{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px}
/* камера */
.cam{position:fixed;inset:0;z-index:48;background:#000;color:var(--on-media);display:flex;flex-direction:column}
.cam .vf{flex:1;min-height:0;position:relative;overflow:hidden}
.cam .vf img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92}
.cam .ctop{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;padding:calc(var(--safe-t) + 10px) 12px;background:linear-gradient(var(--media-shade),transparent)}
.cam .ctop button{min-width:var(--tap);min-height:var(--tap);border:0;background:none;color:var(--on-media);font-size:20px}
.cam .rtm{display:none;align-items:center;gap:8px;font:600 16px var(--font-mono);background:var(--crit-solid);padding:4px 12px;border-radius:var(--r-pill)}
.cam.recv .rtm{display:flex}
.cam .ctl{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:18px 24px calc(var(--safe-b) + 22px);gap:12px}
.cam .ctl .cth{width:52px;height:52px;border-radius:var(--r-s);object-fit:cover;border:2px solid var(--on-media)}
.cam .shut{width:82px;height:82px;border-radius:50%;border:5px solid var(--on-media);background:var(--on-media);background-clip:content-box;padding:4px}
.cam.recv .shut{background:var(--crit-solid);background-clip:content-box;transform:scale(1.12)}
.cam .flip{justify-self:end;width:var(--tap);height:var(--tap);border-radius:50%;border:0;background:var(--media-shade);color:var(--on-media);font-size:20px}
.cam .hint{text-align:center;font-size:13px;opacity:.85;padding-top:4px}

/* ---------- Книжка = чат с собой ---------- */
.msgs{display:flex;flex-direction:column;gap:8px;max-width:720px;margin:0 auto}
.dsep{align-self:center;margin:10px 0 2px;padding:4px 12px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--fg-2)}
.bub{align-self:flex-end;max-width:min(86%,520px);display:grid;gap:6px;padding:8px 10px 6px;border-radius:var(--r-l) var(--r-l) 6px var(--r-l);background:var(--accent-soft);border:1px solid var(--line);min-width:0}
.bub .q{font-size:15px}
.bub .tr{font-size:14px;color:var(--fg);border-left:2px solid var(--line-2);padding-left:8px}
.bub .ph{width:220px;max-width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.bub .sb figure{flex-basis:70px}.bub .sb img{width:70px;height:124px}
.bub .lcard{display:grid;gap:4px;padding:8px 10px;border-radius:var(--r-s);background:var(--surface);border:1px solid var(--line)}
.bub .foot{display:flex;align-items:center;justify-content:flex-end;gap:6px;font:400 11.5px var(--font-mono);color:var(--fg-2)}
.bub .foot i{width:7px;height:7px;border-radius:50%;background:var(--c)}
.bub .stt{font-family:var(--font-body);font-weight:600;white-space:nowrap}
.bub .stt.ok{color:var(--ok)}.bub .stt.q{color:var(--fg-3)}
.bub .to{justify-self:end;font-size:12.5px;color:var(--info);text-decoration:none;font-weight:600;border:0;background:none;padding:0;min-height:28px;text-align:right}
.bub.queued{opacity:.75;border-style:dashed}
.ctxchip{align-self:flex-end;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:600;color:var(--fg-2)}
.composer.inline{display:none}
.ctx [data-ctx="all"] i{background:conic-gradient(var(--ctx-bolt) 0 33%,var(--ctx-kart) 0 66%,var(--ctx-none) 0)}
/* ---------- Мои дела ---------- */
.seg{display:inline-flex;padding:3px;gap:3px;border-radius:var(--r-pill);background:var(--sunk);margin-bottom:14px}
.seg button{min-height:40px;padding:0 16px;border:0;border-radius:var(--r-pill);background:none;font-weight:600;color:var(--fg-2)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-1)}
.todo-add{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;border-radius:var(--r-l);border:1.5px solid var(--line-2);background:var(--surface);margin-bottom:12px}
.todo-add input{flex:1;min-width:0;border:0;background:none;min-height:var(--tap);font-size:15px}
.todo-add .mic{flex:0 0 var(--tap);height:var(--tap)}
.todos{display:grid;gap:8px;max-width:720px}
.todo{display:grid;grid-template-columns:var(--tap) minmax(0,1fr) var(--tap);align-items:center;gap:6px;padding:6px 8px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.todo .ck{width:var(--tap);height:var(--tap);border:0;background:none;display:grid;place-items:center;padding:0}
.todo .ck span{width:24px;height:24px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;font-size:14px;color:var(--yes-ink)}
.todo .ck[aria-pressed="true"] span{background:var(--yes);border-color:var(--yes)}
.todo .tt{font-size:15px;overflow-wrap:anywhere}
.todo .dd{font:400 12px var(--font-mono);color:var(--fg-2)}
.todo .dd.late{color:var(--crit);font-weight:600}
.todo.is-done .tt{text-decoration:line-through;color:var(--fg-3)}
.todo .bell{width:var(--tap);height:var(--tap);border:0;border-radius:50%;background:none;color:var(--fg-3);font-size:18px}
.todo .bell[aria-pressed="true"]{color:var(--accent-text);background:var(--accent-soft)}

/* ---------- Диктовка 🎤 ---------- */
.composer{flex-wrap:wrap}
.dk{flex:0 0 var(--tap);height:var(--tap);border-radius:50%;border:1.5px solid var(--line-2);background:var(--surface);color:var(--fg);display:grid;place-items:center}
.dk svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.live{display:none;order:-1;flex:1 1 100%;padding:8px 10px 2px;font-size:15.5px;line-height:1.45;overflow-wrap:anywhere}
.live .fresh{opacity:.45}
.live .fresh::after{content:"▍";opacity:.8;animation:pulse 1s infinite}
.dbar{display:none;flex:1 1 100%;align-items:center;gap:8px}
.dbar .x,.dbar .st{flex:0 0 var(--tap);height:var(--tap);border-radius:50%;border:0;background:var(--sunk);color:var(--fg);font-size:16px;display:grid;place-items:center}
.dbar .up{flex:0 0 var(--tap);height:var(--tap);border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);font-size:20px;font-weight:800}
.dbar .dw{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:3px;height:32px;overflow:hidden}
.dbar .dw s{flex:0 0 3px;border-radius:2px;background:var(--accent-text);animation:wv 1s ease-in-out infinite alternate;animation-delay:calc(var(--k)*-90ms)}
@keyframes wv{from{transform:scaleY(.3)}to{transform:scaleY(1)}}
.is-dict>.ib,.is-dict>textarea,.is-dict>.dk,.is-dict>.mic,.is-dict>.rt{display:none!important}
.is-dict>.live,.is-dict>.dbar{display:flex}
.is-dict>.live{display:block}
.is-dict{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft),var(--shadow-2)}
.dhint{flex:1 1 100%;order:-1;font-size:12.5px;color:var(--fg-2);padding:2px 10px 0}
.qtw{position:relative}
.qtw .dk{position:absolute;right:8px;bottom:12px}
.qtw .qtext{padding-right:60px}
.qdict{display:flex;flex-wrap:wrap;gap:8px;padding:6px;border-radius:var(--r-l);border:1.5px solid var(--accent);background:var(--surface-2)}

/* ---------- ПК ---------- */
@media (min-width:1024px){
  .app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr)}
  .side{display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;overflow:auto;padding:18px 14px;background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-right:1px solid var(--line)}
  .side .ctx{flex-direction:column;border-radius:var(--r-l);overflow:visible}
  .side .ctx button{justify-content:flex-start;border-radius:var(--r-m)}
  .side .ctx .n{margin-left:auto}
  .snav{display:grid;gap:2px}
  .snav button{display:flex;align-items:center;gap:10px;min-height:var(--tap);padding:0 12px;border:0;border-radius:var(--r-m);background:none;color:var(--fg-2);font-weight:600;text-align:left}
  .snav svg{width:20px;height:20px;flex:0 0 20px}
  .snav button:hover{background:var(--surface-2);color:var(--fg)}
  .snav button[aria-current="page"]{background:var(--ink);color:var(--ink-fg)}
  .snav .n{margin-left:auto;font:600 11px var(--font-mono);min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center}
  .side .lbl{padding-left:12px}
  .side-foot{margin-top:auto;display:grid;gap:8px}
  .side-foot .theme-btn{justify-content:flex-start}
  .side-foot .theme-btn .lab{display:inline}
  .who-me{display:flex;align-items:center;gap:10px;font-size:var(--fs-xs);color:var(--fg-2);padding:0 4px}
  .who-me i{width:32px;height:32px;border-radius:50%;background:var(--tg);color:var(--tg-ink);display:grid;place-items:center;font-style:normal;font-weight:700}
  .top{display:none}
  .bnav,.sheet,#composer{display:none!important}
  .composer.inline{display:flex;position:sticky;left:auto;right:auto;bottom:16px;max-width:720px;margin:12px auto 0;width:100%}
  [data-tab-cur="feed"] main.main{padding-bottom:48px}
  main.main{padding:28px 32px 48px;width:100%}
  .two{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:16px;align-items:start}
  .two>.aside{position:sticky;top:20px;display:grid;gap:12px}
}
.snav-mob{display:none}

/* ---------- общие части ---------- */
.lbl{font:600 11px var(--font-body);letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));gap:12px;align-items:start}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0;box-shadow:var(--shadow-1);animation:rise var(--dur-in) var(--ease) both;animation-delay:calc(var(--i,0)*45ms)}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.card h3{font:var(--fw-strong) 16.5px/1.3 var(--font-body);margin:0;text-wrap:balance;overflow-wrap:anywhere}
.meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:var(--fs-xs);color:var(--fg-2)}
.proj{font:600 11px var(--font-mono);padding:2px 7px;border-radius:6px;border:1px solid var(--line-2);color:var(--fg);white-space:nowrap}
.cx{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--fg-2);white-space:nowrap}
.cx::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 14px;padding:2px 16px}
.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 13px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:500;white-space:nowrap}
.chip b{font:600 12px var(--font-mono)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ink-fg)}
.chip .dot{width:9px;height:9px;border-radius:50%}
@media (min-width:1024px){.chips{flex-wrap:wrap;margin:0 0 14px;padding:0}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--tap);padding:0 16px;border-radius:var(--r-m);border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font-weight:600;font-size:14.5px;white-space:nowrap;text-decoration:none;transition:transform var(--dur) var(--ease)}
.btn:active{transform:scale(.97)}
.btn.yes{background:var(--yes);border-color:var(--yes);color:var(--yes-ink)}
.btn.main{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.no{color:var(--crit)}
.btn.ghost{border-color:transparent;background:none;color:var(--fg-2);padding:0 10px}
.btn.tg{background:var(--tg);border-color:var(--tg);color:var(--tg-ink)}
.act{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.act .sp{flex:1}
@media (max-width:480px){.act.stack .btn{flex:1 1 auto}}
.empty{display:grid;justify-items:center;gap:8px;text-align:center;padding:40px 20px;color:var(--fg-2);border:1.5px dashed var(--line-2);border-radius:var(--r-xl);background:var(--surface-2)}
.empty b{color:var(--fg);font-size:var(--fs-l)}
.empty svg{width:40px;height:40px;color:var(--fg-3)}
.banner{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-l);margin-bottom:14px;font-size:var(--fs-s)}
.banner.err{background:var(--crit-bg);color:var(--crit)}
.banner.off{background:var(--warn-bg);color:var(--warn)}
.banner b{display:block;color:var(--fg)}
.sk{border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);padding:16px;display:grid;gap:10px}
.sk i{display:block;height:12px;border-radius:6px;background:var(--skeleton);animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* голос — капсула */
.voice{display:flex;align-items:center;gap:10px;background:var(--sunk);border-radius:var(--r-pill);padding:4px 14px 4px 4px;max-width:100%;min-width:0}
.voice button{flex:0 0 36px;height:36px;border-radius:50%;border:0;background:var(--ink);color:var(--ink-fg);display:grid;place-items:center}
.voice button svg{width:14px;height:14px;fill:currentColor}
.voice .w{display:flex;align-items:center;gap:2px;height:24px;flex:1;min-width:50px;overflow:hidden}
.voice .w s{flex:0 0 3px;border-radius:2px;background:var(--fg-3);opacity:.6}
.voice .w s.p{background:var(--accent-text);opacity:1}
.voice .t{font:400 12px var(--font-mono);color:var(--fg-2);white-space:nowrap}
.q{margin:0;font-size:14.5px;overflow-wrap:anywhere}
.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.more{justify-self:start;border:0;background:none;padding:0;color:var(--accent-text);font-weight:600;font-size:13px;min-height:28px}
.ph{width:76px;height:76px;border-radius:var(--r-s);object-fit:cover;background:var(--sunk);cursor:zoom-in;border:1px solid var(--line)}
.ph.big{width:100%;height:auto;max-height:260px;aspect-ratio:auto}
/* раскадровка */
.sb{display:grid;gap:6px;min-width:0}
.sb .strip{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;scrollbar-width:thin}
.sb figure{margin:0;flex:0 0 84px;scroll-snap-align:start;display:grid;gap:3px}
.sb img{width:84px;height:150px;object-fit:cover;border-radius:var(--r-xs);background:var(--sunk);display:block;cursor:zoom-in}
.sb figcaption{font:400 11px var(--font-mono);color:var(--fg-2);text-align:center}
.sb .bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--fg-2)}

/* запись (источник) */
.src{display:grid;gap:8px;border-top:1px dashed var(--line);padding-top:12px;min-width:0}
.rec{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px 10px;align-items:start;min-width:0}
.rec .k{width:30px;height:30px;border-radius:var(--r-xs);background:var(--sunk);display:grid;place-items:center;font-size:14px}
.rec .body{display:grid;gap:6px;min-width:0}
.link{font:400 13px var(--font-mono);color:var(--info);overflow-wrap:anywhere;text-decoration:none}

/* ---------- Разобрать ---------- */
.sum{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:16px;margin-bottom:14px;box-shadow:var(--shadow-1)}
.sum h2{margin:0;font:var(--fw-strong) 16px/1.3 var(--font-body)}
.nums{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13.5px;color:var(--fg-2);margin-top:4px}
.nums b{font:600 14px var(--font-mono);color:var(--fg)}
.nums .ask b{color:var(--accent-text)}
@media (max-width:560px){.sum{grid-template-columns:minmax(0,1fr)}}
.type{display:inline-flex;align-items:center;gap:6px;font:700 11.5px var(--font-body);letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:var(--r-xs)}
.t-new{background:var(--warn-bg);color:var(--warn)} .t-att{background:var(--info-bg);color:var(--info)} .t-mrg{background:var(--mrg-bg);color:var(--mrg)}
.t-add{background:var(--ok-bg);color:var(--ok)} .t-q{background:var(--sunk);color:var(--fg-2)} .t-auto{background:var(--sunk);color:var(--fg)}
.head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.conf{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-xs);color:var(--fg-2)}
.conf i{display:inline-flex;gap:2px}
.conf i s{width:7px;height:10px;border-radius:2px;background:var(--line-2)}
.conf i s.on{background:var(--fg)}
.conf b{font:600 12px var(--font-mono);color:var(--fg)}
.fields{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 12px;margin:0;font-size:14px}
.fields dt{color:var(--fg-2);font-size:13px}
.fields dd{margin:0;overflow-wrap:anywhere}
@media (max-width:560px){.fields{grid-template-columns:minmax(0,1fr)}.fields dd{margin-bottom:6px}}
.target{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-m);padding:10px 12px;font-size:14px}
.target>span:first-child{flex:1;min-width:0}
.why{font-size:13.5px;color:var(--fg-2);margin:0}
.why b{color:var(--fg)}
.newbox{background:var(--accent-soft);border-radius:var(--r-m);padding:10px 12px;font-size:14px}
.arrow{justify-self:center;color:var(--fg-2);font-size:13px}
.merge{display:grid;gap:6px}
.decided{background:transparent;border-style:dashed;box-shadow:none;padding-block:12px}
.decided h3{font-size:14.5px;color:var(--fg-2)}
.okline{color:var(--ok);font-weight:600}

/* ---------- Готовые задачи / Задачи ---------- */
.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}
.steps s{height:5px;border-radius:3px;background:var(--line)}
.steps s.on{background:var(--c)}
.st{display:inline-flex;align-items:center;gap:6px;font:700 11.5px var(--font-body);letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:var(--r-xs);color:var(--c);background:color-mix(in srgb,var(--c) 15%,transparent)}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.tk{--c:var(--s-prop)}
.tk[data-s="appr"]{--c:var(--s-appr)} .tk[data-s="form"]{--c:var(--s-form)} .tk[data-s="sent"]{--c:var(--s-sent)}
.tk[data-s="work"]{--c:var(--s-work)} .tk[data-s="done"]{--c:var(--s-done)} .tk[data-s="acc"]{--c:var(--s-acc)}
.tk[data-s="done"]{border-color:var(--s-done);box-shadow:0 0 0 1.5px var(--s-done),var(--shadow-1)}
.tk[data-s="acc"]{background:var(--ok-bg);border-color:transparent}
.wait{font:600 12.5px var(--font-body);color:var(--accent-text)}
.ex{display:flex;align-items:center;gap:10px;font-size:14px;flex-wrap:wrap}
.ex .av{width:32px;height:32px;border-radius:10px;background:var(--sunk);display:grid;place-items:center}
.crit{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.crit li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;font-size:14px;overflow-wrap:anywhere}
.crit li::before{content:"";width:16px;height:16px;margin-top:2px;border-radius:5px;border:1.5px solid var(--line-2);background:var(--surface)}
.crit li.ok::before{background:var(--ok);border-color:var(--ok);box-shadow:inset 0 0 0 3px var(--surface)}
.res{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-m);padding:12px;display:grid;gap:8px}
.res .shots{display:flex;gap:6px;overflow-x:auto}
.res .shots img{width:80px;height:142px;object-fit:cover;border-radius:var(--r-xs);flex:0 0 auto;cursor:zoom-in}
.assign .opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}

/* ---------- Вопросы ---------- */
.qa{border-left:0}
.qa .ask{font:var(--fw-strong) 17.5px/1.35 var(--font-body);margin:0;text-wrap:pretty}
.opts-q{display:grid;gap:8px}
.opt{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 14px;border-radius:var(--r-m);border:1.5px solid var(--line-2);background:var(--surface);text-align:left;font-weight:600;font-size:15px}
.opt small{display:block;font-weight:400;color:var(--fg-2);font-size:12.5px}
.opt:hover{border-color:var(--fg-3)}
.opt[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.opt .ic{width:30px;height:30px;flex:0 0 30px;border-radius:var(--r-xs);background:var(--sunk);display:grid;place-items:center}
.say{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r-l);padding:6px 6px 6px 14px;background:var(--surface-2)}
.say input{flex:1;min-width:0;border:0;background:none;min-height:40px;outline-offset:4px}
.mic{flex:0 0 52px;height:52px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;box-shadow:var(--shadow-1)}
.mic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.say.is-rec{border-color:var(--crit-solid);background:var(--crit-bg)}
.say.is-rec .mic{background:var(--crit-solid);color:var(--ink-fg);animation:pulse 1s infinite}
.say .rt{flex:1;display:none;align-items:center;gap:8px;color:var(--crit);font-weight:600;font-size:14px}
.say.is-rec .rt{display:flex}.say.is-rec input{display:none}
.say .rt::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--crit-solid)}
.pending{font-size:13.5px;padding:10px 12px;border-radius:var(--r-m);background:var(--info-bg);color:var(--info)}
.qmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ---------- Книжка, Фото, Хронология, Переписка ---------- */
.day{font:var(--fw-display) 15px var(--font-display);margin:18px 0 10px;display:flex;gap:10px;align-items:baseline}
.day small{font:400 13px var(--font-body);color:var(--fg-2)}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,170px),1fr));gap:8px}
.gi{position:relative;border-radius:var(--r-l);overflow:hidden;background:var(--sunk);aspect-ratio:4/5;border:0;padding:0;cursor:zoom-in}
.gi img{width:100%;height:100%;object-fit:cover;display:block}
.gi .cap{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 6px;font:500 11px var(--font-mono);color:var(--on-media);background:linear-gradient(transparent,var(--media-shade));text-align:left}
.gi .kind{position:absolute;top:6px;left:6px;font:600 10.5px var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--on-media);background:var(--media-shade);padding:3px 7px;border-radius:6px}
.tl{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line);display:grid;gap:14px}
.tl li{position:relative;display:grid;gap:3px;font-size:14px}
.tl li::before{content:"";position:absolute;left:-25px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--line-2);border:2px solid var(--bg)}
.tl li.own::before{background:var(--accent)} .tl li.team::before{background:var(--s-work)} .tl li.res::before{background:var(--s-done)}
.tl .h{font:400 12px var(--font-mono);color:var(--fg-2)} .tl .h b{font-family:var(--font-body);color:var(--fg);font-weight:600}
.tl .x{overflow-wrap:anywhere}
.tl li.own .x{background:var(--accent-soft);padding:8px 10px;border-radius:var(--r-s)}
.tl .z{font-size:12.5px;color:var(--fg-2)}
.threads{display:grid;gap:8px}
.th{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;text-align:left;padding:12px 14px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);min-height:var(--tap)}
.th[aria-current="true"]{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.th b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.th span{grid-column:1/-1;color:var(--fg-2);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat{display:grid;gap:8px}
.msg{display:grid;gap:2px;max-width:88%;padding:9px 12px;border-radius:var(--r-l);font-size:14.5px;overflow-wrap:anywhere}
.msg.own{justify-self:end;background:var(--accent-soft);border-bottom-right-radius:6px}
.msg.team{justify-self:start;background:var(--surface-2);border:1px solid var(--line);border-bottom-left-radius:6px}
.msg .who{font:600 12px var(--font-body);color:var(--fg-2)}

/* ---------- Вход ---------- */
.login{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.login .box{width:min(420px,100%);background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-line);border-radius:28px;box-shadow:var(--shadow-2);padding:28px 22px;display:grid;gap:16px;text-align:center;justify-items:center}
.login h1{font:var(--fw-display) var(--fs-hero)/1.05 var(--font-display);letter-spacing:var(--ls-display);margin:0}
.login p{margin:0;color:var(--fg-2)}
.login .btn.tg{width:100%;min-height:56px;font-size:16px;border-radius:var(--r-l)}
.login .btn.tg svg{width:22px;height:22px;fill:currentColor}
.login .fine{font-size:12.5px;color:var(--fg-3)}
.login .logos{display:flex;gap:14px;align-items:center;justify-content:center}
.login .state{width:100%}

/* ---------- Telegram Mini App (data-shell="tg") ---------- */
[data-shell="tg"]{--safe-t:0px;--safe-b:18px}
[data-shell="tg"] .top{top:0}
[data-shell="tg"] .top .theme-btn{display:none}
[data-shell="tg"] .app{max-width:480px;margin:0 auto;display:block}
[data-shell="tg"] .side{display:none}
[data-shell="tg"] .top{display:block}
[data-shell="tg"] .bnav{display:grid!important;left:max(10px,calc(50% - 230px));right:max(10px,calc(50% - 230px))}
[data-shell="tg"] main.main{padding:14px 12px calc(var(--bar-h) + var(--safe-b) + 28px)}
[data-shell="tg"] .two{display:block}
[data-shell="tg"] .two>.aside{display:none}

/* лайтбокс */
dialog{border:0;padding:0;background:var(--surface);color:var(--fg);border-radius:var(--r-xl);width:min(560px,94vw);max-height:92vh}
dialog::backdrop{background:var(--scrim)}
.lb{display:grid;gap:10px;padding:12px}
.lb img{width:100%;max-height:70vh;object-fit:contain;border-radius:var(--r-s);background:var(--bg-2)}
.lb .bar{display:flex;justify-content:space-between;align-items:center;gap:8px}

/* ── 3. карточки волн 1–3 ── */
/* app.css — раскладка и компоненты пульта (перенесены из артефакта pult-zadach.html). Цвета — только var(--…) из tokens.css. */
.stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.stat{display:flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13px}
.stat b{font:600 15px var(--f-mono);font-variant-numeric:tabular-nums}
.filters{display:flex;flex-wrap:wrap;gap:6px;margin-block:14px}
.pill{font:600 11.5px var(--f-body);letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:5px}
.st-done{background:var(--ok-bg);color:var(--ok)} .st-work{background:var(--info-bg);color:var(--info)}
.st-choice{background:var(--warn-bg);color:var(--warn)} .st-new{background:var(--sunk);color:var(--muted)} .st-block{background:var(--crit-bg);color:var(--crit)}
.desc{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.result{background:var(--sunk);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.result .lbl{font:600 11.5px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.links{display:flex;flex-wrap:wrap;gap:6px}
.links a{font:500 13px var(--f-body);color:var(--fg);text-decoration:none;padding:5px 10px;border-radius:7px;border:1px solid var(--line);background:var(--surface);cursor:pointer;overflow-wrap:anywhere}
.links a.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.src{display:flex;flex-direction:column;gap:6px}
.srcitem{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}
audio{width:100%;max-width:100%;height:36px}
.text{font-size:14px;color:var(--fg);overflow-wrap:anywhere}
.text.clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
.thumbs img,.thumbs video{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;background:var(--sunk);cursor:zoom-in;max-width:100%}
.note{display:flex;flex-direction:column;gap:6px}
.note textarea{width:100%;min-height:58px;resize:vertical;font:14px/1.4 var(--f-body);padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
.note .saved{font-size:12px;color:var(--muted)}
.skip{opacity:.55}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,200px),1fr));gap:8px}
.gitem{position:relative;border-radius:9px;overflow:hidden;background:var(--sunk);aspect-ratio:4/5;max-width:100%;cursor:zoom-in;border:0;padding:0}
.gitem img,.gitem video{width:100%;height:100%;object-fit:cover;display:block}
.gitem .cap{position:absolute;left:0;right:0;bottom:0;padding:6px 8px;font:500 11.5px var(--f-mono);color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.72))}
.gitem .kind{position:absolute;top:6px;left:6px;font:600 10.5px var(--f-body);letter-spacing:.05em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.55);padding:2px 6px;border-radius:4px}
.status{font-size:12.5px;color:var(--muted);margin-top:6px}
.who{font:600 12.5px var(--f-body);color:var(--fg)} .who b{color:var(--accent)}
.thread{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.thread .lbl{font:600 11.5px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cmt{padding:8px 11px;border-radius:9px;background:var(--sunk);max-width:92%;display:flex;flex-direction:column;gap:2px}
.cmt.owner{background:var(--warn-bg);align-self:flex-end}
.cmt .by{font:600 12px var(--f-body);color:var(--muted)} .cmt .by .when{margin-left:6px}
.cmt .tx{white-space:pre-line;overflow-wrap:anywhere;font-size:14px}
.compose{display:flex;flex-direction:column;gap:6px}
.compose textarea{width:100%;min-height:52px;resize:vertical;font:14px/1.4 var(--f-body);padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
.compose .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn.primary,.links a.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.linkbox{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.linkbox input{flex:1 1 220px;min-width:0;font:12.5px var(--f-mono);padding:5px 8px;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
.focusbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-block:14px;padding:10px 12px;border-radius:9px;background:var(--info-bg);color:var(--info);font-size:14px}
.card.hl{outline:2px solid var(--accent);outline-offset:2px}
.card.done{background:var(--ok-bg);border-color:var(--ok)}
.card.done h3::before{content:"✓ ";color:var(--ok)}
.donebox{display:inline-flex;align-items:center;gap:5px;font:600 12.5px var(--f-body);color:var(--fg);cursor:pointer;padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.donebox input{accent-color:var(--ok);margin:0}
.selbox{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--accent);cursor:pointer}
.card.picked{outline:2px dashed var(--accent);outline-offset:2px}
.card.group{border:2px solid var(--accent)}
.subs{display:flex;flex-direction:column;gap:6px}
.subs details{border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.subs summary{cursor:pointer;padding:8px 10px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:14px}
.subs summary .sum{flex-basis:100%;color:var(--muted);font-size:13px}
.subs details>.card{border:0;border-top:1px solid var(--line);border-radius:0 0 8px 8px}
.subs .ok{color:var(--ok);font-weight:700}
.teamlast{border-left:3px solid var(--info);background:var(--info-bg);padding:7px 10px;border-radius:0 8px 8px 0;font-size:14px;white-space:pre-line;overflow-wrap:anywhere}
.teamlast b{font-size:12px;color:var(--info)}
.selbar{display:flex;flex-direction:column;gap:8px;margin-block:10px;padding:10px 12px;border-radius:9px;border:1px solid var(--accent);background:var(--surface)}
.selbar input,.selbar textarea,.assignbox select{font:14px var(--f-body);padding:6px 9px;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--fg);width:100%}
.assignbox{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.assignbox select{flex:1 1 220px;width:auto}
.cmt .thumbs{max-width:320px}
.cmt audio{max-width:320px}
.cmt .links a{font-size:12px;padding:3px 8px}
/* ===== волна 3: вкладки «Разобрать» (r-) и «Готовые задачи» (g-) — по макету ⚡-🔩-BOLT-DESIGN 11.10 ===== */
.r-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.r-act .sp{flex:1}
.r-act .btn,.g-assign .btn,.r-sum .btn{font:600 14px var(--f-body);min-height:40px;padding:0 14px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.btn[disabled]{opacity:.55;cursor:default}
.r-sum{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-top:14px}
.r-sum h2{margin:0;font:700 16px/1.3 var(--f-display)}
.r-sum .nums{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px;color:var(--muted);margin-top:4px}
.r-sum .nums b{font:600 14px var(--f-mono);color:var(--fg)}
.r-sum .nums .ask b{color:var(--accent)}
@media (max-width:560px){.r-sum{grid-template-columns:minmax(0,1fr)} .r-fields{grid-template-columns:minmax(0,1fr)} .r-fields dd{margin-bottom:6px}}
.r-type{display:inline-flex;align-items:center;gap:6px;font:700 12px var(--f-body);letter-spacing:.04em;text-transform:uppercase;padding:3px 9px 3px 7px;border-radius:6px}
.t-new{background:var(--warn-bg);color:var(--warn)} .t-att{background:var(--info-bg);color:var(--info)} .t-mrg{background:var(--mrg-bg);color:var(--mrg)}
.t-add{background:var(--ok-bg);color:var(--ok)} .t-q{background:var(--sunk);color:var(--muted)} .t-auto{background:var(--sunk);color:var(--fg)}
.r-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.r-conf{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.r-conf i{display:inline-flex;gap:2px}
.r-conf i s{width:8px;height:10px;border-radius:2px;background:var(--line)}
.r-conf i s.on{background:var(--fg)}
.r-conf b{font:600 12.5px var(--f-mono);color:var(--fg)}
.r-fields{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 12px;margin:0;font-size:14px}
.r-fields dt{color:var(--muted);font-size:13px}
.r-fields dd{margin:0;overflow-wrap:anywhere;white-space:pre-line}
.r-target{display:flex;align-items:center;gap:10px;background:var(--sunk);border-radius:8px;padding:10px 12px;font-size:14px}
.r-target>span:first-child{flex:1;min-width:0}.r-target .proj{flex:0 0 auto}
.r-target b{font-weight:600}
.r-merge{display:grid;gap:6px}
.r-arrow{justify-self:center;color:var(--muted);font-size:13px}
.r-new{background:var(--warn-bg);color:var(--fg);border-radius:8px;padding:10px 12px;font-size:14px;white-space:pre-line;overflow-wrap:anywhere}
.r-why{font-size:13.5px;color:var(--muted);margin:0;overflow-wrap:anywhere}
.r-why b{color:var(--fg);font-weight:600}
.r-src{display:grid;gap:8px;border-top:1px dashed var(--line);padding-top:12px;min-width:0}
.r-rec{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:start;min-width:0}
.r-rec .k{width:28px;height:28px;border-radius:8px;background:var(--sunk);display:grid;place-items:center;font-size:14px;grid-row:span 2}
.r-rec .q{font-size:14px;overflow-wrap:anywhere;margin:0}
.r-rec .q.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.r-rec .bot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}
.r-ph{width:72px;height:72px;border-radius:8px;object-fit:cover;background:var(--sunk);cursor:zoom-in}
.r-pick{border:1px solid var(--line);border-radius:9px;overflow:hidden}
.r-pick .s{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--sunk)}
.r-pick .s input{flex:1;min-width:0;font:14px var(--f-body);padding:6px 8px;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
.r-pick button{display:flex;width:100%;align-items:center;gap:10px;padding:10px 12px;border:0;border-top:1px solid var(--line);background:var(--surface);color:var(--fg);font:14px var(--f-body);text-align:left;cursor:pointer}
.r-pick button span:first-child{flex:1;min-width:0}.r-pick .proj{flex:0 0 auto}
.r-pick button em{font-style:normal;color:var(--accent);font-weight:600}
.r-done{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}
.r-done .ok{color:var(--ok);font-weight:600} .r-done .x{color:var(--crit);font-weight:600} .r-done .rp{color:var(--muted);font-weight:600}
.card.decided{background:transparent;border-style:dashed;padding-block:10px}
.card.decided h3{font-size:14.5px;color:var(--muted)}
.r-wait{font-size:13.5px;padding:8px 12px;border-radius:8px;background:var(--info-bg);color:var(--info)}
.r-err{font-size:13.5px;padding:8px 12px;border-radius:8px;background:var(--crit-bg);color:var(--crit);overflow-wrap:anywhere}
.g-flow{display:flex;flex-wrap:wrap;gap:6px;margin-block:14px}
.g-flow .dot{width:9px;height:9px;border-radius:50%}
.g-flow .arr{color:var(--muted);align-self:center;font-size:12px}
.g-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}
.g-steps s{height:5px;border-radius:3px;background:var(--line)}
.g-steps s.on{background:var(--c)}
.g-st{display:inline-flex;align-items:center;gap:6px;font:700 12px var(--f-body);letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:6px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.g-st::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.g-card{--c:var(--s-prop)}
.g-card[data-s="appr"]{--c:var(--s-appr)} .g-card[data-s="form"]{--c:var(--s-form)} .g-card[data-s="sent"]{--c:var(--s-sent)}
.g-card[data-s="work"]{--c:var(--s-work)} .g-card[data-s="done"]{--c:var(--s-done)} .g-card[data-s="acc"]{--c:var(--s-acc)}
.g-card[data-s="done"]{border-color:var(--s-done);box-shadow:0 0 0 1px var(--s-done)}
.g-card[data-s="acc"]{background:var(--ok-bg);border-color:transparent}
.g-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.g-wait{font:600 12.5px var(--f-body);color:var(--accent)}
.g-ex{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}
.g-ex .av{width:30px;height:30px;border-radius:9px;background:var(--sunk);display:grid;place-items:center;font-size:15px}
.g-ex b{font-weight:600}
.g-ex .none{color:var(--accent);font-weight:600}
.g-crit{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.g-crit li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;font-size:14px;align-items:start;overflow-wrap:anywhere}
.g-crit li::before{content:"";width:16px;height:16px;margin-top:2px;border-radius:5px;border:1.5px solid var(--line);background:var(--surface)}
.g-crit li.ok::before{background:var(--ok);border-color:var(--ok);box-shadow:inset 0 0 0 3px var(--surface)}
.g-chat{display:grid;gap:8px;border-top:1px dashed var(--line);padding-top:12px}
.g-msg{display:grid;gap:2px;max-width:92%;padding:8px 12px;border-radius:12px;font-size:14px;white-space:pre-line;overflow-wrap:anywhere}
.g-msg.own{justify-self:end;background:var(--warn-bg);border-bottom-right-radius:4px}
.g-msg.team{justify-self:start;background:var(--sunk);border-bottom-left-radius:4px}
.g-msg .who{font:600 12px var(--f-body);color:var(--muted);white-space:normal}
.g-res{background:var(--sunk);border-radius:9px;padding:12px;display:grid;gap:8px}
.g-res p{margin:0;font-size:14px;white-space:pre-line;overflow-wrap:anywhere}
.g-assign{display:grid;gap:6px}
.g-assign .opts{display:flex;flex-wrap:wrap;gap:6px}
.g-assign .opts .chip[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.g-ans{display:grid;gap:6px}
.g-ans textarea{width:100%;min-height:48px;resize:vertical;font:14px/1.4 var(--f-body);padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
.tlx{border-top:1px dashed var(--line);padding-top:10px}
.tlx summary{cursor:pointer;font:600 13px var(--f-body);color:var(--muted);list-style-position:inside}
.tlx ol{list-style:none;margin:10px 0 0;padding:0 0 0 14px;border-left:2px solid var(--line);display:grid;gap:10px}
.tlx li{position:relative;display:grid;gap:2px;font-size:13.5px;overflow-wrap:anywhere}
.tlx li::before{content:"";position:absolute;left:-20px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--line);border:2px solid var(--surface)}
.tlx li.own::before{background:var(--accent)} .tlx li.team::before{background:var(--info)} .tlx li.res::before{background:var(--ok)}
.tlx .h{font:400 12px var(--f-mono);color:var(--muted)} .tlx .h b{font-family:var(--f-body);color:var(--fg);font-weight:600}
.tlx .x{white-space:pre-line}
.tlx .x.why,.ch-list .x.why{color:var(--muted);font-size:12.5px;font-style:italic;background:none;padding:0}
.tlx li.own .x{background:var(--warn-bg);padding:6px 9px;border-radius:8px}

/* ═══ сайт дом7я.рф: оболочка, две раскладки ═══════════════════════════════════════════════════════════
                                 нижняя панель вкладок с «Ещё», отступы под вырезы экрана, крупные касания. */


/* контекст на карточке: одно касание — меню из 5 вариантов */

/* вопросы */
.q-card{border-left:4px solid var(--sec)}
.q-text{font:600 16px/1.35 var(--f-body);margin:0;white-space:pre-line;overflow-wrap:anywhere}
.q-opts{display:flex;flex-wrap:wrap;gap:8px}
.q-opts .btn{min-height:42px;padding:0 14px;font:600 14px var(--f-body);border-radius:10px}
.q-ans{display:grid;gap:6px}
.q-ans textarea{width:100%;min-height:52px;resize:vertical;font:14px/1.4 var(--f-body);padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}

/* хронология (лента событий всех задач) */
.ch-day{font:700 14px var(--f-display);margin:20px 0 8px;color:var(--fg)}
.ch-list{list-style:none;margin:0;padding:0 0 0 16px;border-left:2px solid var(--line);display:grid;gap:10px}
.ch-list li{position:relative;display:grid;gap:3px;font-size:14px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:9px 12px;overflow-wrap:anywhere}
.ch-list li::before{content:"";position:absolute;left:-23px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--line);border:2px solid var(--bg)}
.ch-list li.own::before{background:var(--accent)} .ch-list li.team::before{background:var(--info)} .ch-list li.res::before{background:var(--ok)}
.ch-list li.own .x{background:var(--warn-bg);padding:6px 9px;border-radius:8px}
.ch-list .h{font:400 12px var(--f-mono);color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.ch-list .h b{font-family:var(--f-body);color:var(--fg)}
.ch-list .task{font:600 13px var(--f-body);color:var(--fg);background:none;border:0;padding:0;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:var(--line)}
.ch-list .x{white-space:pre-line}
.pending{font-size:12px;color:var(--info)}
.cmt.wait,.g-msg.wait{outline:1px dashed var(--info)}
.mo{font-size:12.5px;color:var(--muted)}

/* ── десктоп ── */

/* ── мобильная (оболочка приложения) ── */
.q-ans .r-act{align-items:center}
.q-ans .btn{min-height:40px;height:auto;align-self:center}
/* ═══ сайт дом7я.рф — свои части поверх макета дизайнеров (волна Б) ═══ */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
#composer-host{display:none}
.view{min-width:0}
.status{font-size:12.5px;color:var(--fg-3);margin:18px 0 0}
.sub,.mo{color:var(--fg-2);font-size:13px}
.pending{font-size:13px}
.brand-logo .kart-mark{background-image:var(--brand-mark)}
.login .m-big{width:52px;height:60px}.login .w-big{width:54px;height:58px}
.login .none-i.big{width:56px;height:56px;border-radius:16px}.login .none-i.big svg{width:30px;height:30px}
.login .state:empty{display:none}
.login .state{padding:12px 14px;border-radius:var(--r-l);background:var(--surface-2);border:1px solid var(--line);font-size:14px;text-align:left}
.login .state.err{background:var(--crit-bg);color:var(--crit);border-color:transparent}
.login .state.ok{background:var(--info-bg);color:var(--info);border-color:transparent}
.login-wait{display:grid;gap:10px;width:100%}
.login-wait .code{font:600 22px var(--font-mono);letter-spacing:.08em}
.login-wait .btn{width:100%}
.spin{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .9s linear infinite;vertical-align:-2px;margin-right:6px}
@keyframes spin{to{transform:rotate(360deg)}}

/* раздел (контекст) на карточке — одно касание */
.cxb{display:inline-flex;align-items:center;gap:6px;font:600 12px var(--font-body);padding:3px 10px;min-height:28px;border-radius:var(--r-pill);border:1px solid var(--line-2);color:var(--fg);background:var(--surface);cursor:pointer}
.cxb::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,var(--fg-3))}
.cxb.wait{border-style:dashed}
.ctx-menu{position:fixed;z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-2);padding:6px;display:grid;gap:2px;min-width:220px}
.ctx-menu button{display:flex;align-items:center;gap:10px;min-height:var(--tap);padding:0 12px;border:0;border-radius:var(--r-s);background:none;color:var(--fg);font:500 14.5px var(--font-body);text-align:left}
.ctx-menu button:hover,.ctx-menu button:focus-visible{background:var(--surface-2)}
.ctx-menu button i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.ctx-menu .t{font:600 11px var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);padding:6px 12px 2px}
.ctx button{color:var(--fg-2)}
.ctx button.minor{font-weight:500}

/* книжка = чат */
.feed-top{display:flex;justify-content:center;margin:4px 0 6px}
.bub{position:relative;touch-action:pan-y;user-select:text;transition:transform .15s var(--ease)}
.bub.tg{border-style:solid}
.bub.hl{box-shadow:0 0 0 2px var(--accent)}
.bub .qt{display:grid;gap:1px;border-left:3px solid var(--accent-text);background:var(--surface);border-radius:var(--r-xs);padding:4px 8px;font-size:12.5px;color:var(--fg-2);cursor:pointer;text-align:left;border-top:0;border-right:0;border-bottom:0;min-height:var(--tap)}
.bub .qt b{color:var(--fg);font-weight:600}
.bub .ph{width:220px;max-width:100%;height:auto;aspect-ratio:auto;max-height:320px;object-fit:cover;border-radius:var(--r-s);cursor:zoom-in}
.bub .alb{display:grid;grid-template-columns:repeat(2,minmax(0,110px));gap:4px}
.bub .alb .ph{width:100%;height:110px;aspect-ratio:1}
.bub .alb .more{position:relative}
.bub .fileline{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-s);background:var(--surface);border:1px solid var(--line);font-size:14px;overflow-wrap:anywhere}
.bub .prog{height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.bub .prog i{display:block;height:100%;background:var(--accent-text);width:0}
.bub .stline{justify-self:end;font-size:12px;color:var(--fg-2);text-align:right}
.bub .warn{font-size:12.5px;color:var(--warn);font-weight:600}
.bub .err{font-size:12.5px;color:var(--crit);font-weight:600}
.bub .btn.mini{min-height:34px;padding:0 12px;font-size:13px;justify-self:end}
.bub .via{font-size:11px}
.bub .q{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.bub .q.clamp12{display:-webkit-box;-webkit-line-clamp:12;-webkit-box-orient:vertical;overflow:hidden}
.bub.reply{border-radius:var(--r-l) var(--r-l) 6px var(--r-l)}
.side .addbtn svg{width:20px;height:20px;flex:0 0 20px}
.msgs{padding-bottom:8px}
.msgmenu{position:fixed;z-index:61;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-2);padding:6px;display:grid;gap:2px;min-width:230px}
.msgmenu button{display:flex;align-items:center;gap:10px;min-height:var(--tap);padding:0 12px;border:0;border-radius:var(--r-s);background:none;color:var(--fg);font:500 14.5px var(--font-body);text-align:left}
.msgmenu button:hover{background:var(--surface-2)}
.msgmenu .det{font:400 12px var(--font-mono);color:var(--fg-2);padding:6px 12px;white-space:pre-line}
.replybar{flex:1 1 100%;order:-2;display:flex;align-items:center;gap:8px;padding:4px 6px 4px 10px;border-left:3px solid var(--accent-text);border-radius:var(--r-xs);background:var(--surface-2);font-size:13px;color:var(--fg-2);min-width:0}
.replybar span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.replybar button{flex:0 0 var(--tap);height:var(--tap);border:0;background:none;color:var(--fg-2);font-size:16px}
.composer .ctxrow{order:-3;flex:1 1 100%;display:flex;justify-content:flex-end}
.composer .ctxchip{min-height:32px}
.composer textarea{overflow-y:auto;scrollbar-width:none}
.composer .snd{flex:0 0 var(--tap);height:var(--tap);border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);font-size:20px;font-weight:800;display:grid;place-items:center}
.composer .mic{display:grid;place-items:center;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);touch-action:none;user-select:none;-webkit-user-select:none}
.composer .mic svg,.composer .dk svg{width:22px;height:22px}
.composer .rt .mono{font-weight:600}
.composer .rt .hint{font-weight:400;color:var(--fg-2)}
.composer .lockbar{display:none}
.composer.is-lock .lockbar{display:flex;flex:1 1 100%;align-items:center;gap:8px}
.composer.is-lock>.ib,.composer.is-lock>textarea,.composer.is-lock>.dk,.composer.is-lock>.mic,.composer.is-lock>.snd{display:none!important}
.composer.is-lock .lockbar .x,.composer.is-lock .lockbar .st{flex:0 0 var(--tap);height:var(--tap);border-radius:50%;border:0;background:var(--sunk);color:var(--fg);font-size:16px}
.composer.is-lock .lockbar .up{flex:0 0 var(--tap);height:var(--tap);border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);font-size:20px;font-weight:800}
.composer.is-lock .lockbar .t{flex:1;color:var(--crit);font-weight:600;display:flex;align-items:center;gap:8px}
.composer.is-lock .lockbar .t::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--crit-solid);animation:pulse 1s infinite}
.composer.card-c{position:static;left:auto;right:auto;bottom:auto;box-shadow:none;background:var(--surface-2);z-index:auto}
.composer.feedc{z-index:19}
.composer .dbar .dw s{height:var(--h,14px)}
@media (min-width:1024px){
  .composer.feedc{position:sticky;left:auto;right:auto;bottom:16px;max-width:720px;margin:12px auto 0;width:100%}
  .app{grid-template-columns:var(--side-w) minmax(0,1fr)}
}
[data-tab-cur="feed"] main.main{padding-bottom:calc(var(--bar-h) + var(--safe-b) + 150px)}
@media (min-width:1024px){[data-tab-cur="feed"] main.main{padding-bottom:24px}}
.bnav .n:empty{display:none}
.sheet-items{display:grid;gap:6px}

/* шторка «＋», скрепка, превью, камера — живые части */
.qrec .big svg{stroke:currentColor}
.attach .recent:empty{display:none}
.pv .stage img,.pv .stage video{height:100%;max-height:52vh;width:auto;max-width:86%;object-fit:contain;border-radius:var(--r-l);scroll-snap-align:center;background:var(--sunk)}
.pv .stage .fcard{flex:0 0 auto;align-self:center;display:grid;gap:6px;padding:16px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);max-width:80%}
.pv .bar b{font-weight:600}
.cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
.cam .shots{position:absolute;right:12px;bottom:12px;display:flex;gap:4px}
.cam .shots img{width:44px;height:44px;object-fit:cover;border-radius:var(--r-xs);border:2px solid var(--on-media)}
.cam .ctl .send{justify-self:start;min-width:52px;height:52px;border-radius:26px;border:0;background:var(--accent);color:var(--accent-ink);font-weight:800;padding:0 14px}
.cam .ctl .ph0{width:52px}
.cam .msg{position:absolute;inset:auto 16px 16px 16px;text-align:center;font-size:14px}
.toast{max-width:min(560px,calc(100% - 32px))}

/* Мои дела, устройства, приложение */
.todo .tt{cursor:text}
.todo .when-edit{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.todo .when-edit input{font:13px var(--font-mono);padding:4px 6px;border-radius:var(--r-xs);border:1px solid var(--line-2);background:var(--surface-2);color:var(--fg)}
.todo.wait{opacity:.8;border-style:dashed}
.devs{display:grid;gap:8px;max-width:720px}
.dev{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.dev .ic{width:40px;height:40px;border-radius:12px;background:var(--sunk);display:grid;place-items:center}
.dev .ic svg{width:22px;height:22px}
.dev b{font-weight:600;overflow-wrap:anywhere}
.dev small{display:block;color:var(--fg-2);font-size:12.5px}
.dev.me{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.page-h .act{margin-top:6px}
.appbox{display:grid;gap:12px;max-width:640px}
.appbox .btn{justify-self:start}
.linkout{font:13px var(--font-mono);padding:8px 10px;border-radius:var(--r-s);background:var(--surface-2);border:1px solid var(--line);overflow-wrap:anywhere}

/* старые карточки на новых токенах */
.card.hl{outline:2px solid var(--accent);outline-offset:2px}
.thumbs img{border:1px solid var(--line)}
.cmt.owner,.g-msg.own{background:var(--accent-soft)}
.teamlast{border-left-color:var(--s-work)}
details.tlx summary{min-height:var(--tap);display:flex;align-items:center}
.gallery .gitem{border-radius:var(--r-l)}
.q-card{border-left:4px solid var(--c,var(--accent))}
.lb #lb-media img{width:100%;max-height:70vh;object-fit:contain;border-radius:var(--r-s);background:var(--bg-2)}
.lb .text{white-space:pre-line;font-size:14px}
@media (max-width:1023px){dialog{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}}
