/* Product UI stays fail-closed until the server identifies the tower. */
body.presentation-pending{visibility:hidden}

/* M-SITE-FRONT-SPACE-17: mobile workspace controls, guest geometry, accessible move path. */
/* M-SITE-FRONT-MOBILE-FIX-22I: убираем системную мобильную tap-highlight подсветку
   (синий/серый прямоугольник без скругления при тапе — Android/WebKit дефолт).
   Скругления и фидбек даём своими стилями (:active, .open), не системным цветом. */
* {-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
button,a,.sp-pill,.sp-folder-h,.mt-probe,.mt-name,.nav-item,.km-move-option,.pf-item,.nd-item{
  -webkit-tap-highlight-color:transparent}
/* выпадашка места (заготовка «добавить место»; количество — с сервера, не хардкод) */
.store-dd{position:absolute;top:52px;z-index:41;min-width:210px;max-width:300px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45);
  display:none;flex-direction:column;gap:1px}
.store-dd.open{display:flex}
.store-dd .sd-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px 6px}
.store-dd .sd-options .sd-add{margin:0;padding:8px 4px;display:flex;flex-direction:column;gap:4px;align-items:center;white-space:nowrap}
.store-dd .sd-options small{font-size:11px;color:var(--text-muted)}
.store-dd .sd-hd{font-size:calc(11px * var(--fs-scale-half));letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);padding:8px 10px 4px}
.store-dd .sd-cur{padding:0 10px 8px;font-size:calc(15px * var(--fs-scale-half));font-weight:600;color:var(--text)}
.store-dd .sd-note{padding:6px 10px 8px;font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-muted);border-top:1px solid var(--border);margin-top:2px}
.store-dd .sd-add{margin:4px 6px 4px;padding:9px 10px;border-radius:9px;background:var(--bg-0);color:var(--text);
  font-size:12.5px;font-weight:600;border:none;cursor:pointer}
.store-dd .sd-add:disabled{opacity:.5;cursor:default}
.mt-store-btn{gap:4px}
/* ===== TOP BAR ===== */
.topbar{height:var(--topbar-h);display:flex;align-items:center;gap:16px;padding:0 18px;background:var(--bg-1);
  border-bottom:1px solid var(--border);position:relative;z-index:30}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.3px;color:var(--text);text-decoration:none;cursor:pointer}
.brand:hover .mark{filter:brightness(1.08)}
.brand-name{display:inline-flex;align-items:baseline;gap:5px}.brand-product{color:var(--text-muted);font-weight:500;letter-spacing:.2px}
/*M-BRAND-ICON-01: марка = сама иконка приложения. Один артефакт на всё — PWA, favicon,
  хедер, офлайн. Буква (Poppins Bold) запечена в файл намеренно: системный шрифт рисует K
  по-своему на каждой ОС, поэтому марка в хедере и марка в иконке расходились. Segoe UI и
  SF Pro в бренд-марку нельзя по лицензии — отсюда свободный шрифт.
  Заливки-цветом нет намеренно: под PNG со скруглённым силуэтом она вылезала бы углами.
  :hover не трогаем — brightness(1.08) как был. */
.brand .mark{width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center;
  color:transparent;font-weight:800;font-size:16px;letter-spacing:0;
  background:url('/icons/icon-192.png?v=20260718-icon2') center/contain no-repeat}
/* M-SITE-HEADER-02: живой огонёк связи у бренда (зелёный = приборка получает данные) */
.online-dot{width:7px;height:7px;border-radius:50%;background:var(--danger);flex:0 0 auto;margin-left:2px;transition:background .3s}/* M-DEPT-SWITCH-FRONT-01: база=красный (нет связи), .on=зелёный */
.online-dot.on{background:var(--success)}
/* M-ECON-MODELPICK-01b: прибор «модель» + фамильная выпадашка выбора */
.u-model{cursor:pointer;border-radius:8px;padding:3px 7px;margin:-3px -3px}
.u-model:hover{background:var(--bg-card)}
.u-model .chev{width:11px;height:11px;opacity:.7}
.model-dd{position:absolute;top:52px;z-index:41;min-width:252px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45);
  display:none;flex-direction:column;gap:1px}
.model-dd.open{display:flex}
.model-dd .md-hd{font-size:calc(11px * var(--fs-scale-half));letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);padding:8px 10px 6px}
.model-dd .md-item{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border-radius:9px;cursor:pointer}
.model-dd .md-item:hover{background:var(--bg-0)}
.model-dd .md-item .md-check{width:14px;flex:0 0 auto;color:var(--success);opacity:0}
.model-dd .md-item.active .md-check{opacity:1}
.model-dd .md-item b{font-size:calc(13px * var(--fs-scale-half));color:var(--text)}
.model-dd .md-item .md-hint{font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-muted);margin-top:2px}
.model-dd .md-note{padding:7px 10px 6px;font-size:calc(11px * var(--fs-scale-half));color:var(--text-muted);border-top:1px solid var(--border);margin-top:4px}
/* M-SITE-WALLET-01: кошелёк — кликабельный прибор + фамильная выпадашка (клон model-dd) */
.u-wallet{cursor:pointer;border-radius:8px;padding:3px 7px;margin:-3px -3px}
.u-wallet:hover{background:var(--bg-card)}
.u-wallet .chev{width:11px;height:11px;opacity:.7}
.u-wallet.bal-low b{color:var(--warning)}
.u-wallet.bal-neg b{color:var(--danger)}
.wallet-dd{position:absolute;top:52px;z-index:41;min-width:296px;max-width:340px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45);
  display:none;flex-direction:column;gap:1px}
.wallet-dd.open{display:flex}
.wallet-dd .wd-hd{font-size:calc(11px * var(--fs-scale-half));letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);padding:8px 10px 4px}
.wallet-dd .wd-bal{padding:0 10px 8px;font-size:calc(19px * var(--fs-scale-half));font-weight:700;color:var(--text);display:flex;justify-content:space-between;align-items:baseline;gap:12px}/* M-KORPUS-USAGE-HONEST-05: баланс + общий расход */
.wallet-dd .wd-bal .wb-spent{font-size:calc(11.5px * var(--fs-scale-half));font-weight:500;color:var(--text-muted);white-space:nowrap}
.wallet-dd .wd-bal .wb-spent b{font-weight:700;color:var(--text);margin-left:5px}
.wallet-dd .wd-bal.neg{color:var(--danger)}
.wallet-dd .wd-warn{margin:0 6px 6px;padding:7px 9px;border-radius:9px;font-size:calc(11.5px * var(--fs-scale-half));
  background:rgba(214,162,69,.13);color:var(--warning)}
.wallet-dd .wd-warn.neg{background:rgba(217,97,79,.13);color:var(--danger)}
.wallet-dd .wd-hist{max-height:196px;overflow-y:auto;scrollbar-width:none}
.wallet-dd .wd-hist::-webkit-scrollbar{display:none}
.wallet-dd .wd-life{max-height:278px;overflow-y:auto;scrollbar-width:none;padding:0 4px}
.wallet-dd .wd-life::-webkit-scrollbar{display:none}
.wallet-dd .wd-life-total,.wallet-dd .wd-month>summary,.wallet-dd .wd-day>summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:6px;color:var(--text-muted);font-size:calc(11px * var(--fs-scale-half));cursor:pointer;list-style:none}
.wallet-dd .wd-life-total{padding:4px 6px 7px}
.wallet-dd .wd-life-total b,.wallet-dd .wd-month>summary b,.wallet-dd .wd-day>summary b{color:var(--text-2);font-weight:600;white-space:nowrap}
.wallet-dd .wd-month>summary::-webkit-details-marker,.wallet-dd .wd-day>summary::-webkit-details-marker{display:none}
.wallet-dd .wd-month>summary:hover,.wallet-dd .wd-day>summary:hover{color:var(--text)}
.wallet-dd .wd-month{border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent)}
.wallet-dd .wd-month>summary{padding:7px 6px;font-size:calc(12px * var(--fs-scale-half));color:var(--text-2)}
.wallet-dd .wd-month>summary span,.wallet-dd .wd-day>summary span{flex:0 0 auto}
.wallet-dd .wallet-dd .wd-day>summary{padding:5px 6px}
.wallet-dd .wd-day .wd-row{padding-left:18px}
.wallet-dd .wd-row{display:flex;align-items:baseline;gap:8px;padding:5px 10px;font-size:calc(12px * var(--fs-scale-half));color:var(--text-2)}
.wallet-dd .wd-row .dt{flex:0 0 auto;color:var(--text-muted);font-size:calc(11px * var(--fs-scale-half))}
.wallet-dd .wd-row .lbl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wallet-dd .wd-row .amt{flex:0 0 auto;font-weight:600;color:var(--text)}
.wallet-dd .wd-row .amt.plus{color:var(--success)}
.wallet-dd .wd-empty{padding:8px 10px;font-size:calc(12px * var(--fs-scale-half));color:var(--text-muted)}
.wallet-dd .wd-top{display:flex;gap:6px;padding:8px 6px 4px;border-top:1px solid var(--border);margin-top:4px}
.wallet-dd .wd-top button{flex:1;padding:8px 4px;border-radius:9px;background:var(--bg-0);color:var(--text);
  font-size:12.5px;font-weight:600;transition:background .15s}
.wallet-dd .wd-top button:hover{background:var(--primary-fill);color:var(--on-primary)}
.wallet-dd .wd-top button:disabled{opacity:.5;cursor:default}
.wallet-dd .wd-promo{display:flex;gap:6px;padding:4px 6px 6px}
.wallet-dd .wd-promo input{flex:1;padding:7px 9px;border-radius:9px;border:1px solid var(--border);
  background:var(--bg-0);color:var(--text);font-size:12.5px;outline:none}
.wallet-dd .wd-promo input:focus{border-color:var(--primary)}
.wallet-dd .wd-promo button{flex:0 0 auto;padding:7px 12px;border-radius:9px;background:var(--bg-0);
  color:var(--text);font-size:12.5px;font-weight:600}
.wallet-dd .wd-promo button:hover{background:var(--primary-fill);color:var(--on-primary)}
.wallet-dd .wd-msg{padding:2px 10px 6px;font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-muted);min-height:15px}
.wallet-dd .wd-msg.ok{color:var(--success)} .wallet-dd .wd-msg.err{color:var(--danger)}
.wallet-dd .wd-note{padding:7px 10px 6px;font-size:calc(11px * var(--fs-scale-half));color:var(--text-muted);border-top:1px solid var(--border)}
.topbar .spacer{flex:1}
.quota{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-muted)}
.quota .track{width:110px;height:6px;border-radius:6px;background:var(--bg-card);overflow:hidden}
.quota .fill{height:100%;width:18%;background:var(--primary);border-radius:6px}
/* ===== USAGE DASHBOARD (шапка) ===== */
.usage{display:flex;align-items:center;gap:14px;margin-left:6px;font-size:12.5px;color:var(--text-2)}
.u-item{display:flex;align-items:center;gap:6px;white-space:nowrap}
.u-item svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;flex:0 0 auto}
.u-item b{color:var(--text);font-weight:600}
.u-storage .track{width:74px;height:6px;border-radius:6px;background:var(--bg-card);overflow:hidden}
.u-storage .fill{height:100%;width:18%;background:var(--primary);border-radius:6px;transition:width .3s}
.u-sep{width:1px;height:18px;background:var(--border)}
.u-seam{opacity:.42;cursor:help}            /* seam: источник ещё не подключён (без фейковых цифр) */
.u-model{color:var(--primary);opacity:.55}
@media (max-width:1180px){.u-seam{display:none}}
@media (max-width:960px){.u-storage .track{display:none}}

.icon-btn{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--text-2);transition:all var(--sink)}
.icon-btn:hover{background:var(--bg-card);color:var(--text)} .icon-btn svg{width:20px;height:20px;stroke-width:1.8}

/* M-SITE-NAV-01: бургер-навигация — клон паттерна .cs-dd (единый вкус выпадашек).
   Слева от бренда; список компактный: пространство, подписка, доверие, юрдоки, реквизиты. */
.nav-dd{position:absolute;top:52px;right:12px;z-index:41;width:264px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45);
  display:none;flex-direction:column;gap:1px}
.nav-dd.open{display:flex}
.nav-dd .nd-hd{font-size:calc(11px * var(--fs-scale-half));letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);padding:8px 10px 6px}
.nav-dd a.nd-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;
  font-size:13px;color:var(--text-2);text-decoration:none}
.nav-dd a.nd-item:hover{background:var(--bg-0);color:var(--text)}
.nav-dd a.nd-item .ic{width:18px;text-align:center;font-size:calc(14px * var(--fs-scale-half));opacity:.85;flex:0 0 auto}
.nav-dd a.nd-item svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;flex:0 0 auto}
.nav-dd .nd-sep{height:1px;background:var(--border);margin:5px 8px}
.nav-dd .nd-copy{padding:8px 10px 7px;font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-muted)}
/* M-PROFILE-01: профиль — аватар в самом правом краю + фамильная карточка (клон wallet-dd) */
.u-avatar{width:30px;height:30px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;flex:0 0 auto;user-select:none;letter-spacing:.3px}
.u-avatar:hover{border-color:var(--primary)}
.profile-dd{position:absolute;top:52px;right:12px;z-index:41;min-width:272px;max-width:320px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45);display:none;flex-direction:column;gap:1px;max-height:calc(100dvh - 72px);overflow:auto;overscroll-behavior:contain;scrollbar-width:none}/* M-PROFILE-UX-04: карточка выросла — скроллим саму модалку на малых экранах, скроллбар скрыт каноном */
.profile-dd::-webkit-scrollbar{display:none}
.profile-dd.open{display:flex}
.profile-dd .pf-head{display:flex;align-items:center;gap:10px;padding:9px 10px 7px;position:sticky;top:-6px;margin:-6px -6px 0;padding-left:16px;padding-right:16px;background:var(--bg-card);z-index:2;border-radius:14px 14px 0 0}/* M-PROFILE-UX-04: шапка (аватар+имя) липнет к верху, остальное проматывается под ней */
.profile-dd .pf-head .av{width:40px;height:40px;border-radius:50%;background:var(--bg-0);border:1px solid var(--border);display:grid;place-items:center;font-size:calc(15px * var(--fs-scale-half));font-weight:600;color:var(--text);flex:0 0 auto}
.profile-dd .pf-head .nm{font-size:calc(13.5px * var(--fs-scale-half));font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-dd .pf-head .em{font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-dd .pf-admin{margin-left:auto;align-self:center;padding:3px 8px;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:calc(10.5px * var(--fs-scale-half));font-weight:600;line-height:1.2;text-decoration:none;letter-spacing:.02em;flex:0 0 auto}
.profile-dd .pf-admin:hover{color:var(--text);border-color:var(--text-muted);background:var(--bg-0)}
.profile-dd .pf-row{display:flex;align-items:baseline;gap:8px;padding:4px 10px;font-size:calc(12.5px * var(--fs-scale-half))}
.profile-dd .pf-row .k{flex:0 0 auto;color:var(--text-muted);font-size:calc(11.5px * var(--fs-scale-half))}
.profile-dd .pf-row .v{flex:1;text-align:right;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-dd .pf-sub{color:var(--text-muted);font-size:calc(11.5px * var(--fs-scale-half));line-height:1.25}/* M-PROFILE-POLISH-02: подпись сущности (пункт и инпуты) — стиль .k строк */
.profile-dd .pf-guest-warn{margin:2px 10px 4px;padding:7px 9px;border:1px solid var(--border);border-left:3px solid var(--warning);border-radius:9px;color:var(--text-muted);font-size:calc(11.5px * var(--fs-scale-half));line-height:1.35}/* M-PROFILE-POLISH-02: честное предупреждение гостя */
.profile-dd .pf-head .av.has-photo,#uAvatarBtn.has-photo,#mtAvatar.has-photo{background-size:cover;background-position:center;color:transparent}/* M-PROFILE-AVATAR-01: круг несёт фото */
.profile-dd .pf-click{cursor:pointer}
.profile-dd .pf-click:hover{color:var(--text);text-decoration:underline}
.profile-dd .pf-sep{height:1px;background:var(--border);margin:3px 6px}
.profile-dd .pf-item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;cursor:pointer;font-size:calc(12.5px * var(--fs-scale-half));color:var(--text-2);text-decoration:none}
.profile-dd .pf-item:hover{background:var(--bg-0);color:var(--text)}
.profile-dd .pf-item svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;flex:0 0 auto}
.profile-dd .pf-pw{display:none;flex-direction:column;gap:5px;padding:3px 10px 7px}
.profile-dd .pf-pw.open{display:flex}
.profile-dd .pf-pw input{padding:7px 9px;border-radius:9px;border:1px solid var(--border);background:var(--bg-0);color:var(--text);font-size:calc(12.5px * var(--fs-scale-half));outline:none}
.profile-dd .pf-pw input:focus{border-color:var(--primary)}
.profile-dd .pf-pw button{padding:7px 10px;border-radius:9px;background:var(--bg-0);color:var(--text);font-size:calc(12.5px * var(--fs-scale-half));font-weight:600}
.profile-dd .pf-pw button:hover{background:var(--primary-fill);color:var(--on-primary)}
.profile-dd .pf-pw button:disabled{opacity:.5;cursor:default}
.profile-dd .pf-msg{padding:0 10px 4px;font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-muted);min-height:14px}
.profile-dd .pf-msg.ok{color:var(--success)} .profile-dd .pf-msg.err{color:var(--danger)}

/* ═══ M-SITE-ACCOUNT-DELETE-01: удаление аккаунта ═══
   Донор — блок пароля (.pf-pw): та же механика раскрытия, те же токены.
   Отличие одно и намеренное: красный. Это единственное необратимое действие
   в профиле, и выглядеть как «сменить пароль» оно не должно. */
.profile-dd .pf-item.pf-danger{color:var(--danger)}
.profile-dd .pf-item.pf-danger:hover{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}
.profile-dd .pf-del{display:none;flex-direction:column;gap:6px;padding:4px 10px 8px}
.profile-dd .pf-del.open{display:flex}
.profile-dd .pf-del-warn{font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-muted);line-height:1.45}
.profile-dd .pf-del input{padding:7px 9px;border-radius:9px;border:1px solid var(--border);background:var(--bg-0);color:var(--text);font-size:calc(12.5px * var(--fs-scale-half));outline:none;text-align:center;letter-spacing:.08em}
.profile-dd .pf-del input:focus{border-color:var(--danger)}
.profile-dd .pf-del button{padding:7px 10px;border-radius:9px;background:var(--bg-0);color:var(--danger);border:1px solid var(--danger);font-size:calc(12.5px * var(--fs-scale-half));font-weight:600}
.profile-dd .pf-del button:hover{background:var(--danger);color:#fff}
.profile-dd .pf-del button:disabled{opacity:.5;cursor:default}
.profile-dd .pf-del-marked{display:flex;flex-direction:column;gap:6px;padding:8px 10px;margin:0 6px;border-radius:9px;border:1px solid var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}
.profile-dd .pf-del-marked b{font-size:calc(12.5px * var(--fs-scale-half));color:var(--danger)}
.profile-dd .pf-del-marked span{font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-2);line-height:1.45}
.profile-dd .pf-del-marked button{padding:7px 10px;border-radius:9px;background:var(--primary-fill);color:var(--on-primary);font-size:calc(12.5px * var(--fs-scale-half));font-weight:600}
.profile-dd .pf-del-marked button:disabled{opacity:.5;cursor:default}

/* M-SITE-FRONT-HEADER-10: одна панель и одна шестерёнка во всём shell. */
#siteSettings svg{width:18px;height:18px}
.topbar>.cs-dd{right:72px;width:262px;z-index:41}

/* ===== STAGE: work | divider | chat ===== */
.stage{display:flex;height:calc(100% - var(--topbar-h) - var(--foot-h,30px));position:relative}
body.has-guest-bar .stage{height:calc(100% - var(--topbar-h) - var(--foot-h,30px) - var(--guestbar-h,0px))}
/* M-SITE-FOOTER-02: тихий футер главной — © + юрссылки одной строкой */
.site-foot{height:var(--foot-h,30px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px 16px;
  padding:0 18px;border-top:1px solid var(--border);font-size:14.95px;color:var(--text-muted);overflow:hidden;white-space:nowrap}
.site-foot .sf-copy{justify-self:start;opacity:.75}/*M-SITE-FOOTER-03: © TOLMUST тихо слева, ссылки по центру (не спорят с чат-баром)*/
.site-foot nav{display:flex;gap:13px}
.site-foot a{color:var(--text-muted);text-decoration:none}
.site-foot a:hover{color:var(--text-2)}
@media(max-width:760px){.site-foot{grid-template-columns:1fr}.site-foot .sf-copy{display:none}.site-foot nav{justify-self:center}}
.pane-work{flex:1 1 0;min-width:0;min-height:0;display:flex;background:var(--bg-0);overflow:hidden}
.pane-chat{flex:0 0 var(--chat-w);min-width:0;display:flex;flex-direction:column;background:var(--bg-1);container-type:inline-size;container-name:chatbar;
  border-left:1px solid var(--border);overflow:hidden} /* M-SITE-SPACE-05: тонкая рамка — зеркало сайдбара */
.divider{flex:0 0 0;position:relative;z-index:20;cursor:col-resize} /* M-SITE-SPACE-07: близнец wf-resizer 1в1 */
.divider::before{content:"";position:absolute;top:0;left:-3px;width:6px;height:100%} /* hit-зона */
.divider::after{content:"";position:absolute;top:0;left:-1px;width:2px;height:100%;border-radius:6px;background:transparent;transition:background var(--sink)} /* линия 2px как у сайдбара */
.divider:hover::after,.divider.drag::after{background:var(--sel)}

/* --- outer collapse states (симметрично; активная панель всегда flex:1 = нет пустых полос) --- */
.stage.chat-rail .pane-chat{flex:0 0 var(--rail-w)}
.stage.chat-rail .divider{display:none}
.stage.chat-rail .chat-body{display:none}
.stage.chat-rail .chat-rail-strip{display:flex}
.stage.work-rail .pane-work{flex:0 0 var(--rail-w)}
.stage.work-rail .divider{display:none}
.stage.work-rail .pane-chat{flex:1 1 0}
.stage.work-rail .wf-body{display:none}
.stage.work-rail .work-rail-strip{display:flex}

/* icon rail (общий для обеих панелей и внутреннего сайдбара) */
.rail-strip{display:none;flex-direction:column;align-items:center;gap:6px;padding:14px 0;width:var(--rail-w);flex:0 0 auto}
.rail-strip .r-btn{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;color:var(--text-2);transition:all var(--sink)}
.rail-strip .r-btn:hover{background:var(--bg-card);color:var(--primary)} .rail-strip .r-btn svg{width:21px;height:21px;stroke-width:1.7}
.rail-strip .r-sep{width:28px;height:1px;background:var(--border);margin:5px 0}

/* ===== WORKFLOW inner: wf-side | wf-resizer | wf-main ===== */
.wf-body{display:flex;flex:1;min-width:0;min-height:0}
.wf-side{flex:0 0 var(--wf-w);min-width:0;background:var(--bg-1);border-right:1px solid var(--border);
  display:flex;flex-direction:column;position:relative}
.pane-work.wf-collapsed .wf-side{flex:0 0 var(--rail-w)}
.pane-work.wf-collapsed .wf-resizer{display:none}
.pane-work.wf-collapsed .wf-side .co .nm .nm-t,.pane-work.wf-collapsed .wf-side .co .sub,
.pane-work.wf-collapsed .nav-item span,.pane-work.wf-collapsed .nav-item .badge,
.pane-work.wf-collapsed .sec-label{display:none}
.pane-work.wf-collapsed .wf-side .co{justify-content:center}
.pane-work.wf-collapsed .wf-side .co .dept-emoji{margin-right:0} /* в рельсе эмодзи — одинокая печать */
.pane-work.wf-collapsed .nav-item{justify-content:center;padding:11px 0}
.pane-work.wf-collapsed .wf-side .head{padding:14px 0}
.wf-resizer{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:15}
.wf-resizer::after{content:"";position:absolute;inset:0 2px;border-radius:6px;background:transparent;transition:background var(--sink)}
.wf-resizer:hover::after,.wf-resizer.drag::after{background:var(--sel)} /* M-SITE-SPACE-06: белая, не золото */
/* M-SITE-MODES-01a-2: имя пространства встаёт край-в-край с «Режимами».
   Было padding-left:14 → текст на 14px от кромки, а «Режимы» на 22px
   (.wf-nav padding:10 + .sec-label padding-left:12) — восемь пикселей влево,
   глаз их ловил. Выравниваем паддингом, а не центром: при протяжке сайдбара
   центр поехал бы, левый край стоит. Правый паддинг 14 не трогаем — на нём
   висит кнопка тарифа. */
.wf-side .head{padding:16px 14px 12px 22px;border-bottom:1px solid var(--border-soft)}
.wf-side .co{display:flex;align-items:center;gap:11px}
.wf-side .co .nm{font-weight:600;font-size:14px;white-space:nowrap} .wf-side .co .sub{font-size:11.5px;color:var(--text-muted);white-space:nowrap}
.wf-nav{padding:10px;display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto}
.sec-label{font-size:calc(10.5px * var(--fs-scale,1));letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);padding:12px 12px 6px}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;font-size:calc(13.5px * var(--fs-scale,1));color:var(--text-2);
  transition:all var(--sink);text-align:left;width:100%}
.nav-item svg{width:18px;height:18px;stroke-width:1.7;flex:0 0 auto} .nav-item span{white-space:nowrap}
.nav-item:hover{background:var(--bg-card);color:var(--text)}
.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}
#navSpace.active{opacity:.9}/* M-DEPT-SWITCH-CHAT-02: притушить «фару» Пространства на ~10% */
.nav-item .badge{margin-left:auto;font-size:11px;background:var(--bg-card);color:var(--text-muted);padding:1px 8px;border-radius:999px}
.nav-item.locked{opacity:.62;cursor:pointer}
.nav-item.locked:hover{background:var(--bg-card);color:var(--text-2)}
.nav-item.locked .badge{background:transparent}
/* замочек на раздел (голый, без надписей) */
.nav-item .nav-lock{width:14px;height:14px;stroke-width:1.9;flex:0 0 auto;margin-left:auto;color:var(--text-muted);opacity:.8}
.pane-work.wf-collapsed .nav-item .nav-lock{display:none}
.modes-section-label{display:flex;align-items:center;gap:7px}
.modes-section-label #modesSectionLock{display:inline-flex;align-items:center}
.modes-section-label .nav-lock{width:13px;height:13px;stroke-width:1.9;color:var(--text-muted);opacity:.8}
.modes-locked-gate{display:flex;flex-direction:column;align-items:flex-start;padding:0 12px 11px;color:var(--text-muted)}
.modes-locked-note{font-size:calc(11.5px * var(--fs-scale,1));line-height:1.25;white-space:nowrap}
.pane-work.wf-collapsed .modes-locked-gate{display:none}
.pane-work.wf-collapsed .modes-locked-note{display:none}
/* ═══ M-SIDEBAR-02: зеркало-навигация под пунктом «Пространство» ═══ */
.nav-item .nav-mirror-chev{width:15px;height:15px;stroke-width:1.9;flex:0 0 auto;margin-left:auto;color:var(--text-muted);
  opacity:.7;transition:transform var(--sink)}
.nav-item .nav-mirror-chev.open{transform:rotate(180deg)}
.pane-work.wf-collapsed .nav-item .nav-mirror-chev{display:none}
.sp-mirror{display:none;flex-direction:column;gap:1px;margin:2px 0 4px;padding-left:6px}
.sp-mirror.open{display:flex}
.pane-work.wf-collapsed .sp-mirror{display:none} /* в свёрнутом рельсе зеркала нет (SPEC §4.2) */
.sp-mirror-row{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:8px;width:100%;text-align:left;
  color:var(--text-2);font-size:calc(12.5px * var(--fs-scale,1));transition:background var(--sink),color var(--sink)}
.sp-mirror-row:hover{background:var(--bg-card);color:var(--text)}
.sp-mirror-row.active{background:var(--primary-soft);color:var(--primary);font-weight:600}
.sp-mirror-emo{flex:0 0 auto;font-size:13.5px;line-height:1}
.sp-mirror-nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.sp-mirror-frow .sp-mirror-fchev{width:13px;height:13px;flex:0 0 auto;color:var(--text-muted);transition:transform var(--sink)}
.sp-mirror-frow.open .sp-mirror-fchev{transform:rotate(180deg)}
.sp-mirror-sub{display:none;flex-direction:column;gap:1px;margin:1px 0 2px;padding-left:16px;position:relative}
.sp-mirror-sub.open{display:flex}
.sp-mirror-sub::before{content:'';position:absolute;left:6px;top:4px;bottom:4px;width:2px;border-radius:2px;background:rgba(214,162,69,.45)}
:root[data-theme="light"] .sp-mirror-sub::before,:root[data-theme="mist"] .sp-mirror-sub::before{background:rgba(160,120,40,.4)}
.sp-mirror-empty{padding:5px 10px;font-size:calc(11.5px * var(--fs-scale,1));color:var(--text-muted);font-style:italic}
.wf-collapse{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;margin:6px 8px 10px;border-radius:10px;
  color:var(--text-muted);font-size:12px;transition:all var(--sink)}
.wf-collapse:hover{background:var(--bg-card);color:var(--primary)} .wf-collapse svg{width:16px;height:16px;stroke-width:2;transition:transform var(--sink)}
.pane-work.wf-collapsed .wf-collapse svg{transform:rotate(180deg)} .pane-work.wf-collapsed .wf-collapse span{display:none}

.wf-main{flex:1;min-width:0;min-height:0;overflow-y:auto;padding:24px 26px;container-type:inline-size;container-name:workzone;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.pane-work{position:relative} /* M-SITE-SPACE-04: корзина-угол якорится к Пространству */
.wf-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.wf-h h1{font-size:1.333em;font-weight:600} .wf-h p{font-size:0.867em;color:var(--text-muted);margin-top:4px}
.wf-actions{display:flex;gap:9px}
 .btn:hover{border-color:var(--sel);color:var(--text)} /* M-SITE-SPACE-08: минимал, не золото */

/* M-SITE-THEME-FILL-01: заливка+бордюр золотом, текст --on-primary; ховер светлеет,
   потому подмена текста на #fff больше не нужна — фон под ним не темнеет. */

.tree{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
/* ── M-SITE-SPACE-01: Пространство Хранителя — пилюли и раскрытие ── */
.sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(164px,1fr));gap:11px}
@media(max-width:560px){.sp-grid{grid-template-columns:repeat(2,1fr);gap:9px}}
.sp-pill{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:15px;padding:13px 14px;cursor:pointer;
  user-select:none;-webkit-user-select:none} /* CEO 08.07: анимации сняты */
.sp-pill[draggable="true"]{cursor:grab} /* M-SITE-SPACE-06: тащится = рука, консистентно с папкой */
.sp-pill[draggable="true"]:active{cursor:grabbing}
.sp-folder-h{cursor:default}
.sp-folder-h:active{cursor:default}
.sp-pill:hover{border-color:var(--sel-soft)}
.sp-pill.dragging{opacity:.45}
.sp-pill.dropover,.sp-folder-h.dropover{outline:2px dashed var(--sel);outline-offset:2px;border-radius:12px}
.sp-pill.open{border-color:var(--sel)}
.sp-pill .sp-emo{font-size:19px;margin-bottom:7px}
.sp-pill .sp-nm{font-weight:600;font-size:0.933em;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-pill .sp-sub{font-size:0.733em;color:var(--text-muted);margin-top:3px}
.sp-pill.has-actions{padding-right:50px}
.sp-item-act,.sp-folder-trash{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;touch-action:manipulation}
.sp-item-act{position:absolute;right:8px;top:8px;opacity:.62}
.sp-item-act:hover,.sp-item-act:focus-visible,.sp-folder-trash:hover,.sp-folder-trash:focus-visible{background:var(--bg-0);border-color:var(--border);color:var(--text);outline:none;opacity:1}
.sp-item-act svg,.sp-folder-trash svg{width:17px;height:17px;stroke-width:1.8}
.sp-folder-label{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}
.sp-folder-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-folder-trash{margin-left:auto;flex:0 0 34px}
.sp-folder-h{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);
  letter-spacing:.4px;text-transform:uppercase;margin:6px 2px 0}
.sp-folder-h svg{width:14px;height:14px;stroke-width:1.8}
/* M-SITE-FRONT-SPACE-FOLDER-22T: папка — плашка со счётчиком, клик разворачивает drawer с тетрадями */
.sp-folder-pill{cursor:pointer}
.sp-folder-pill .sp-folder-sub{display:flex;align-items:center;justify-content:space-between;gap:6px}
.sp-folder-pill .sp-folder-chev{width:calc(15px * var(--fs-scale-half));height:calc(15px * var(--fs-scale-half));flex:0 0 auto;color:var(--text-muted);transition:transform var(--sink)}
.sp-folder-pill.open .sp-folder-chev{transform:rotate(180deg)}
.sp-folder-pill.open{border-color:var(--sel)}
/* M-SPACE-RENAME-01: карандаш левее корзины + инлайн-редактор имени папки */
.sp-folder-ren{right:46px;display:none} /* M-SPACE-RENAME-01b: карандаш скрыт (десктоп+мобила) — переименование папок делает агент; механизм жив, вернём кнопку одной строкой */
.sp-folder-pill.renaming{cursor:default}
.sp-fren{display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:2px 0}
.sp-fren input{flex:1;min-width:0;padding:7px 10px;border-radius:8px;border:1px solid var(--border);
  background:var(--bg-0);color:var(--text);font-family:inherit;font-weight:600;
  font-size:calc(15px * var(--fs-scale,1));outline:none}
:root[data-theme="light"] .sp-fren input,:root[data-theme="mist"] .sp-fren input{border-color:rgba(0,0,0,.2);background:rgba(0,0,0,.03)}
.sp-fren .ea,.sp-fren .ec{flex:0 0 auto;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  border:1px solid transparent;background:transparent;cursor:pointer}
.sp-fren .ea{color:var(--success)}
.sp-fren .ec{color:var(--text-2)}
.sp-fren .ea:hover,.sp-fren .ec:hover{background:var(--bg-0);border-color:var(--border)}
.sp-fren .ea svg,.sp-fren .ec svg{width:18px;height:18px;stroke-width:2.4}
.sp-fren-err{flex-basis:100%;font-size:calc(11.5px * var(--fs-scale-half));color:var(--danger)}
.sp-folder-drawer{grid-column:1/-1;display:none;grid-template-columns:repeat(auto-fill,minmax(164px,1fr));gap:11px;
  margin:1px 0 8px;padding:8px 0 8px 18px;position:relative;background:none}
/* вертикальная полоска-акцент (паттерн Notion/Linear guide-line): толстая, полностью капсульная,
   без фоновой коробки — только направляющая «содержимое папки» */
.sp-folder-drawer::before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:3px;border-radius:3px;
  background:rgba(214,162,69,.55)}
:root[data-theme="light"] .sp-folder-drawer::before,:root[data-theme="mist"] .sp-folder-drawer::before{background:rgba(160,120,40,.5)}
.sp-folder-drawer.open{display:grid}
@media(max-width:560px){.sp-folder-drawer{grid-template-columns:repeat(2,1fr);gap:9px;padding:7px 0 7px 15px}.sp-folder-drawer::before{left:4px}}
.sp-reader{margin-top:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:20px 22px;display:none}
.sp-reader.open{display:block}
/* ═══ M-SIDEBAR-03: режимы рабочей зоны — грид/папка/сущность взаимоисключающие ═══
   space  — грид виден, папка и ридер скрыты (по умолчанию, без класса тоже работает);
   folder — грид + хедер-actions + корзина + reader скрыты, видна только папка;
   entity — грид + хедер-actions + корзина + папка скрыты, виден только ридер. */
.sp-folderview{display:none}
.wf-main.zone-folder #spGrid,.wf-main.zone-entity #spGrid{display:none}
.wf-main.zone-folder .wf-actions,.wf-main.zone-entity .wf-actions,
.wf-main.zone-folder .sp-add-mob,.wf-main.zone-entity .sp-add-mob,
.wf-main.zone-folder #spTrash,.wf-main.zone-entity #spTrash{display:none}
.wf-main.zone-folder .wf-h .m-back,.wf-main.zone-entity .wf-h .m-back{position:absolute;top:6px;left:6px;z-index:5} /* m-back — плавающий возврат к Глебу, не тянет высоту */
/* заголовок Пространства (h1+p) прячем в folder/entity — у сущности свой заголовок, поднимается под хедер */
.wf-main.zone-folder .wf-h>div:not(.wf-actions),.wf-main.zone-entity .wf-h>div:not(.wf-actions){display:none}
.wf-main.zone-folder .wf-h,.wf-main.zone-entity .wf-h{margin:0;min-height:0;height:0;overflow:visible} /* M-SIDEBAR-06: схлопнуть заголовок Пространства — тетрадь/папка на 2px от хедера, как по краям */
.wf-main.zone-folder #spFolderView{display:block}
.wf-main.zone-folder #spReader{display:none}
/* ═══ M-SIDEBAR-04: сущность-«телевизор» — основной элемент на всю рабочую зону ═══
   В режимах folder/entity рабочая зона теряет большие поля: сущность растянута
   на всю ширину, отступ 2px сверху и по бокам, уезжает под верхнюю кромку зоны
   с мягкой тенью (донор — тень хедера админки), фон полупрозрачный. Сущность
   скроллится внутри зоны, не цепляя хедер/сайдбар. */
/* ═══ M-SIDEBAR-05: правки телевизора ═══════════════════════════════════════
   ТЕТРАДЬ (entity): 2px по краям и сверху, БЕЗ тени, прозрачнее (72%), хедер
   одним слоем прилеплен к самой верхней кромке тетради (не отклеен).
   ПАПКА (folder): НЕ упаковываем в контейнер — папка = сама рабочая зона,
   заголовок/кнопки/крестик парят; тетради внутри — плашки как в гриде. */
.wf-main.zone-entity{padding:2px !important;position:relative}
.wf-main.zone-folder{padding:2px !important;position:relative}
/* тетрадь — единственный основной элемент, прозрачный фон, без тени, без внешнего margin */
.pane-work,.wf-main{--sp-paper:var(--bg-elev);--sp-paper-edge:var(--border);--sp-paper-hi:rgba(255,255,255,.05)} /* M-SIDEBAR-07 */
:root[data-theme="light"] .pane-work,:root[data-theme="light"] .wf-main,:root[data-theme="mist"] .pane-work,:root[data-theme="mist"] .wf-main{--sp-paper:var(--bg-card);--sp-paper-edge:var(--border);--sp-paper-hi:rgba(255,255,255,.6)} /* светлая: кремовый уже выделяется */
.wf-main.zone-entity #spReader{
  margin:0;width:100%;border-radius:14px;
  /* M-SIDEBAR-07: тетрадь — приподнятая поверхность (elevated surface), сплошной фон
     на 2 ступени светлее фона зоны → всплывает из тёмного пространства, не мрачная.
     Прозрачность/blur убраны (на тёмном давали затемнение). */
  background:var(--sp-paper);
  border:1px solid var(--sp-paper-edge);box-shadow:none;padding:2px 22px 22px;
  /* грань-хайлайт: тонкая светлая линия по верхней кромке — «свет сверху» */
  box-shadow:inset 0 1px 0 0 var(--sp-paper-hi)}
@media(max-width:560px){.wf-main.zone-entity #spReader{padding:0 14px 15px}}
/* хедер тетради — прилеплен к самой верхней кромке одним слоем, однороден с тетрадью */
/* M-NOTEBOOK-RENAME-01: заголовок — просто надпись НА тетради (один элемент),
   не sticky, без тени/blur/бордера. Уезжает вверх при скролле, не висит под хедером.
   Разделитель первого месяца отделит заголовок от содержимого. */
.wf-main.zone-entity #spReader .sp-rh{position:static;margin:0 0 4px;padding:16px 0 6px;border:none;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
@media(max-width:560px){.wf-main.zone-entity #spReader .sp-rh{padding:12px 0 6px}}
/* ПАПКА парит: контейнер прозрачный, без фона/бордера/тени — как рабочая зона Пространства */
.wf-main.zone-folder #spFolderView{margin:0;padding:0;background:none;border:none;box-shadow:none}
/* заголовок папки — парит, прилеплен к верху зоны, без коробки */
.wf-main.zone-folder .sp-fv-head{position:sticky;top:0;z-index:2;background:transparent;padding-top:4px}
/* заголовок полнозонной папки — формат Пространства (донор .wf-h) */
.sp-fv-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.sp-fv-title{min-width:0;flex:1}
.sp-fv-title h1{font-size:1.333em;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-fv-meta{font-size:0.867em;color:var(--text-muted);margin-top:4px}
.sp-fv-acts{display:flex;gap:8px;flex:0 0 auto;align-items:center}
.sp-fv-acts button{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;
  border:1px solid var(--border);background:var(--bg-0);color:var(--text-2);cursor:pointer;transition:all var(--sink)}
.sp-fv-acts button svg{width:16px;height:16px;stroke-width:2}
.sp-fv-ren:hover{color:var(--primary);border-color:var(--primary)}
.sp-fv-trash:hover{color:var(--danger);border-color:var(--danger)}
.sp-fv-close:hover{color:var(--text);border-color:var(--text-2)}
.sp-fv-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(164px,1fr));gap:11px;position:relative;padding-left:18px}
.sp-fv-body::before{content:'';position:absolute;left:5px;top:2px;bottom:2px;width:3px;border-radius:3px;background:rgba(214,162,69,.5)} /* M-SIDEBAR-05: полоска как у drawer грида — тетради «парят» с привязкой к папке */
:root[data-theme="light"] .sp-fv-body::before,:root[data-theme="mist"] .sp-fv-body::before{background:rgba(160,120,40,.5)}
@media(max-width:560px){.sp-fv-body{grid-template-columns:repeat(2,1fr);gap:9px;padding-left:15px}.sp-fv-body::before{left:4px}}
/* инлайн-правка имени в заголовке папки */
.sp-fren-fv{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sp-fren-fv input{flex:1;min-width:0;padding:8px 12px;border-radius:9px;border:1px solid var(--border);
  background:var(--bg-0);color:var(--text);font-family:inherit;font-weight:600;
  font-size:calc(1.15em * var(--fs-scale,1));outline:none}
:root[data-theme="light"] .sp-fren-fv input,:root[data-theme="mist"] .sp-fren-fv input{border-color:rgba(0,0,0,.2);background:rgba(0,0,0,.03)}
.sp-fren-fv .ea,.sp-fren-fv .ec{flex:0 0 auto;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;
  border:1px solid var(--border);background:var(--bg-0);cursor:pointer}
.sp-fren-fv .ea{color:var(--success)} .sp-fren-fv .ec{color:var(--text-2)}
.sp-fren-fv .ea svg,.sp-fren-fv .ec svg{width:18px;height:18px;stroke-width:2.4}
.sp-fren-fv .sp-fren-err{flex-basis:100%;font-size:calc(11.5px * var(--fs-scale-half,1));color:var(--danger)}
/* M-NOTEBOOK-RENAME-01: инлайн-редактор имени тетради в заголовке ридера — как sp-fren-fv */
.sp-fren-nb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1}
.sp-fren-nb input{flex:1;min-width:0;padding:6px 11px;border-radius:9px;border:1px solid var(--border);
  background:rgba(255,255,255,.04);color:var(--text);font-family:inherit;font-weight:650;
  font-size:calc(1.2em * var(--fs-scale,1));outline:none}
:root[data-theme="light"] .sp-fren-nb input,:root[data-theme="mist"] .sp-fren-nb input{border-color:rgba(0,0,0,.2);background:rgba(0,0,0,.03)}
.sp-fren-nb .ea,.sp-fren-nb .ec{flex:0 0 auto;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;
  border:1px solid var(--border);background:var(--bg-0);cursor:pointer}
.sp-fren-nb .ea{color:var(--success)} .sp-fren-nb .ec{color:var(--text-2)}
.sp-fren-nb .ea svg,.sp-fren-nb .ec svg{width:18px;height:18px;stroke-width:2.4}
.sp-fren-nb .sp-fren-err{flex-basis:100%;font-size:calc(11.5px * var(--fs-scale-half,1));color:var(--danger)}
@media(max-width:560px){.sp-reader{padding:15px 14px;border-radius:15px}}
.sp-reader .sp-rh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.sp-reader .sp-rh h2{font-size:1.2em;font-weight:650}
.sp-reader .sp-years{display:flex;gap:10px;margin-left:12px;align-items:baseline}
.sp-reader .sp-yr{padding:2px 8px;border-radius:7px;font-size:1em;font-weight:600;background:transparent;color:var(--text-muted);cursor:pointer;border:none} /* M-SIDEBAR-04: годы текстом тем же шрифтом, не пилюли */
.sp-reader .sp-yr.active{color:var(--text);text-decoration:underline;text-underline-offset:4px}
.sp-reader .sp-close{margin-left:auto;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--text-2)}
.sp-reader .sp-close svg{width:23px!important;height:23px!important;stroke-width:2.4}
.sp-reader .sp-close:hover{background:var(--bg-0);color:var(--text)}
.sp-month{border-top:1px solid var(--border-soft);margin-top:8px}
.sp-month .sp-mh{display:flex;align-items:center;gap:9px;padding:12px 2px;cursor:pointer;user-select:none}
.sp-month .sp-mh .chev{width:13px;height:13px;stroke-width:2;transition:transform .18s;color:var(--text-muted)}
.sp-month.open .sp-mh .chev{transform:rotate(90deg)}
.sp-month .sp-mh .mnm{font-weight:600;font-size:14.5px;color:var(--text)}
.sp-month .sp-mh .mcnt{font-size:11.5px;color:var(--text-muted)}
.sp-month .sp-mbody{display:none;padding:0 2px 12px}
.sp-month.open .sp-mbody{display:block}
.sp-day{margin:9px 0 3px;font-size:12.5px;color:var(--text-2);font-weight:600;letter-spacing:.3px} /* M-SITE-SPACE-10: иерархия месяц > дата > время */
.sp-entry{padding:6px 0 5px 14px;position:relative} /* M-SITE-SPACE-08: компактнее · M-NOTEBOOK-RENAME-01: полоска-разделитель заметки */
.sp-entry::before{content:'';position:absolute;left:2px;top:8px;bottom:6px;width:2px;border-radius:2px;background:rgba(214,162,69,.4)}
:root[data-theme="light"] .sp-entry::before,:root[data-theme="mist"] .sp-entry::before{background:rgba(160,120,40,.4)}
.sp-entry+.sp-entry{border-top:1px solid var(--border-soft)} /* CEO: запись от записи — тонкой линией */
.sp-entry.sp-sec{margin-top:12px;padding-top:10px} /* M-SITE-CMDBOOK-03: разделы справочника — блоками с воздухом */
.sp-entry.sp-sec:first-child{margin-top:0}
.sp-entry .sp-et{display:flex;align-items:center;gap:8px}
.sp-entry .sp-et .rowact{margin-left:auto} /* иконки — на одной строке со временем */
.sp-entry .sp-time{font-size:0.767em;color:var(--text-muted);font-weight:500;font-variant-numeric:tabular-nums;flex:0 0 auto} /* M-SITE-SPACE-09: время тише даты */
.sp-entry .sp-title{font-weight:500;font-size:0.9em;color:var(--text-2)} /* CEO: фара заголовка потушена */
.sp-note-edit{margin-top:3px;display:flex;gap:7px;align-items:flex-start}
.sp-note-edit textarea{flex:1;min-height:44px;background:rgba(255,255,255,.04);border:1px solid var(--border);
  border-radius:8px;padding:7px 10px;color:var(--text);font-family:inherit;font-size:calc(15px * var(--fs-scale,1));line-height:1.5;outline:none;resize:none;overflow:hidden} /* M-SPACE-RENAME-01: шрифт правки крупнее + из настроек */
:root[data-theme="light"] .sp-note-edit textarea,:root[data-theme="mist"] .sp-note-edit textarea{background:rgba(0,0,0,.03);border-color:rgba(0,0,0,.2)}
.sp-note-edit .ea{flex:0 0 auto;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--success)}
.sp-note-edit .ec{flex:0 0 auto;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--text-2)}
.sp-note-edit .ea svg,.sp-note-edit .ec svg{width:20px!important;height:20px!important;stroke-width:2.4}
.sp-note-edit .ea:hover,.sp-note-edit .ec:hover{background:var(--bg-0)}
.sp-entry .sp-body{font-size:0.9em;line-height:1.5;color:var(--text-2);color:color-mix(in srgb, var(--text-2) 85%, var(--text));margin-top:0} /* M-SIDEBAR-08: текст заметок +~7% свечения (сдвиг к основному); фолбэк text-2 */
.sp-entry .sp-body p{margin:0 0 6px}
.sp-add{font-size:12.5px;color:var(--text-muted);margin-top:4px;padding-left:10px;border-left:2px solid var(--border)}
.sp-verbatim{font-size:12px;color:var(--text-muted);opacity:.75;font-style:italic;margin-top:3px}
.sp-led-row{display:flex;align-items:baseline;gap:9px;padding:5px 0;font-size:0.867em}
.sp-led-row .d{flex:0 0 auto;color:var(--text-muted);font-size:0.767em;font-variant-numeric:tabular-nums}
.sp-led-row .w{flex:1;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-led-row .a{flex:0 0 auto;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.sp-totals{margin-top:8px;border-top:1px solid var(--border-soft);padding-top:4px} /* CEO 08.07: обшивка снята */
.sp-totals .tt{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);padding:6px 0;cursor:pointer;display:flex;align-items:center;gap:7px;user-select:none}
.sp-totals .tt .chev{width:11px;height:11px;stroke-width:2;transition:transform .15s}
.sp-totals.open .tt .chev{transform:rotate(90deg)}
.sp-totals .tbody{display:none}
.sp-totals.open .tbody{display:block}
.sp-totals .tr{display:flex;justify-content:space-between;font-size:12.5px;color:var(--text-2);padding:2px 0}
.sp-totals .tr b{color:var(--text);font-variant-numeric:tabular-nums}
.sp-totals .tr.sum{border-top:1px solid var(--border);margin-top:6px;padding-top:7px;font-weight:600;color:var(--text)}
.sp-hand{margin-top:9px;padding:9px 12px;border-radius:11px;background:var(--bg-0);font-size:12px;color:var(--text-muted)}
.sp-hand .hl{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;padding:1px 0;color:var(--text-2)}
.sp-empty{padding:28px 10px;text-align:center;color:var(--text-muted);font-size:0.9em;line-height:1.7}
.sp-loading{padding:20px;text-align:center;color:var(--text-muted);font-size:13px}
/* ── M-SITE-SPACE-02: модалки (фамилия сайта), иконки строк, инлайн-правка ── */

 /* M-SITE-SPACE-07: минимал, не золото */

.km-move-list{display:flex;flex-direction:column;gap:7px;max-height:min(46vh,360px);overflow-y:auto;margin:0 0 12px;scrollbar-width:none}
.km-move-list::-webkit-scrollbar{display:none}
.km-move-option{width:100%;min-height:46px;display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;border:1px solid var(--border);background:var(--bg-0);color:var(--text-2);text-align:left;font:inherit;cursor:pointer}
.km-move-option:hover,.km-move-option:focus-visible{border-color:var(--sel);color:var(--text);outline:none}
.km-move-option:disabled{opacity:.5;cursor:wait}
.km-move-option .ico{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--bg-card);flex:0 0 28px}
.km-move-option .arr{margin-left:auto;color:var(--text-muted)}
.sp-led-row .rowact,.sp-et .rowact{display:flex;align-items:center;gap:3px;flex:0 0 auto;margin-left:2px;opacity:.65} /* M-SITE-SPACE-08 + READER-22L: ярче, крупнее — палец попадает */
.sp-led-row:hover .rowact,.sp-entry:hover .rowact{opacity:1}
.rowact button{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--text-2)}
.rowact button:hover{background:var(--bg-0);color:var(--text)}
.rowact button.del:hover{color:var(--danger)}
.rowact svg{width:18px;height:18px;stroke-width:2}
.sp-led-edit{display:flex;gap:8px;align-items:center;padding:4px 0;width:100%}
.sp-led-edit input{flex:1;padding:5px 9px;border-radius:8px;border:1px solid var(--border);
  background:rgba(255,255,255,.04);color:var(--text);font-size:calc(15px * var(--fs-scale,1));outline:none;font-family:inherit} /* CEO 08.07: фара потушена · M-SPACE-RENAME-01: шрифт из настроек */
:root[data-theme="light"] .sp-led-edit input,:root[data-theme="mist"] .sp-led-edit input{border-color:rgba(0,0,0,.2);background:rgba(0,0,0,.03)}
/* M-SITE-SPACE-05: линия выделения — белая/тёмная, золото не светим (слово CEO) */
:root{--sel:rgba(255,255,255,.5);--sel-soft:rgba(255,255,255,.25)}
:root[data-theme="light"],:root[data-theme="mist"]{--sel:rgba(0,0,0,.4);--sel-soft:rgba(0,0,0,.2)}
.sp-led-edit .ea{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--success)}
.sp-led-edit .ec{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--text-2)}
.sp-led-edit .ea svg,.sp-led-edit .ec svg{width:20px!important;height:20px!important;stroke-width:2.4}
.sp-led-edit .ea:hover,.sp-led-edit .ec:hover{background:var(--bg-0)}

.sp-reader .sp-del{margin-left:auto;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--text-2)} /* M-SIDEBAR-06 */
.wf-main.zone-entity #spReader .sp-rh{align-items:center} /* кнопки del/close/edit по центру, на одной линии с заголовком */
.wf-main.zone-entity #spReader .sp-rh h2{margin-right:auto} /* h2 толкает кнопки вправо — единственный margin-auto */
.wf-main.zone-entity #spReader .sp-del,.wf-main.zone-entity #spReader .sp-close,.wf-main.zone-entity #spReader .sp-edit{margin-left:0}
.sp-reader .sp-edit{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--text-2);cursor:pointer;border:none;background:none}
.sp-reader .sp-edit svg{width:18px;height:18px;stroke-width:2.2}
.sp-reader .sp-edit:hover{background:var(--bg-0);color:var(--primary)}
.sp-reader .sp-edit+.sp-del{margin-left:4px}
.wf-main.zone-entity #spReader .sp-del+.sp-close,.wf-main.zone-entity #spReader .sp-edit+.sp-del{margin-left:4px}
.sp-reader .sp-del svg{width:20px!important;height:20px!important;stroke-width:2.2}
.sp-reader .sp-del:hover{background:var(--bg-0);color:var(--danger)}
/* когда есть и корзина, и крестик: корзина прижата вправо (auto), крестик рядом справа от неё */
.sp-reader .sp-del + .sp-close{margin-left:4px}
/* ── M-SITE-SPACE-03: корзина-угол (закреплена, drop-цель + просмотр) ── */
.sp-trash{position:absolute;right:16px;bottom:14px;z-index:12;width:46px;height:46px;border-radius:14px;
  background:var(--bg-card);border:1px solid var(--border);display:grid;place-items:center;cursor:pointer}
.sp-trash:hover{border-color:var(--sel)}
.sp-trash.dropover{border-color:var(--danger)}
.sp-trash img{width:24px;height:24px;opacity:.75} /* иконка CEO (белая) */
:root[data-theme="light"] .sp-trash img,:root[data-theme="mist"] .sp-trash img{filter:invert(.65)}
.sp-trash:hover img{opacity:1}
.km-trashlist{max-height:280px;overflow-y:auto;scrollbar-width:none;margin-bottom:10px}
.km-trashlist::-webkit-scrollbar{display:none}
.km-tr{display:flex;align-items:center;gap:9px;padding:8px 4px;border-bottom:1px solid var(--border-soft);font-size:13px}
.km-tr .nm{flex:1;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.km-tr .dt{flex:0 0 auto;font-size:11px;color:var(--text-muted)}
.km-tr button{flex:0 0 auto;padding:5px 11px;border-radius:8px;background:var(--bg-0);color:var(--text-2);font-size:12px}
.km-tr button:hover{background:var(--primary-fill);color:var(--on-primary)}
.km-empty{padding:14px 4px;font-size:0.867em;color:var(--text-muted)}
/* ── M-SITE-MOBILE-01a: мобильная оболочка (двухэкранник, свайп) ── */
@media(max-width:820px) and (orientation:portrait){
  html,body{height:var(--app-vh,100dvh);min-height:var(--app-vh,100dvh);max-height:var(--app-vh,100dvh);overflow:hidden;position:fixed;inset:0;width:100%} /* страница не мотается — скроллятся только зоны */
  .site-foot{display:none} /* оферта/конфиденциальность — не для мобильного экрана */
  .stage{height:calc(var(--app-vh,100dvh) - var(--topbar-h));min-height:0;overflow:hidden;overscroll-behavior:none;touch-action:pan-y pinch-zoom}
  body.has-guest-bar .stage{height:calc(var(--app-vh,100dvh) - var(--topbar-h) - var(--guestbar-h,0px))}
  .pane-work,.pane-chat{position:absolute;inset:0;width:100%;transition:transform .22s ease}
  .wf-resizer{display:none}
  .wf-side{display:none} /* сайдбар — сущность десктопа (SPEC §1) */
  .stage .pane-chat{transform:translateX(0);z-index:2;background:var(--bg-0)}
  /* M-MOBILE-01a: КАНОН — Пространство СЛЕВА (прячется влево), чат СПРАВА */
  .stage .pane-work{transform:translateX(-100%);z-index:3;background:var(--bg-0)}
  .stage.m-space .pane-work{transform:translateX(0)}
  .sp-trash{position:fixed;bottom:18px}
  /* M-SITE-FRONT-MOBILE-SPACE-22E: плюс переехал в заголовок Пространства (в потоке,
     справа, край = край грида). Парящий FAB на мобиле больше не нужен. */
  body.m-space .sp-fab{display:none!important}
  .wf-actions{display:none} /* Тетрадь/Папка-текстовые — десктоп; на мобиле плюс+sheet */
  .sp-add-mob{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:12px;
    background:var(--bg-card);border:1px solid var(--border);color:var(--text);cursor:pointer}
  .sp-add-mob svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.4}
  .sp-add-mob:hover{border-color:var(--sel)}
  /* корзина — внизу справа, скрывается при открытии сущности (reader.open) */
  body.m-space .sp-trash{right:14px;left:auto;bottom:calc(18px + env(safe-area-inset-bottom,0px));
    width:56px;height:56px;border-radius:16px;background:var(--bg-card);border:1px solid var(--border)}
  body.m-space .sp-trash img{width:26px;height:26px;opacity:.9;filter:brightness(0) invert(1)}
  :root[data-theme="light"] body.m-space .sp-trash img,:root[data-theme="mist"] body.m-space .sp-trash img{filter:none;opacity:.7}
  body.m-space:has(.sp-reader.open) .sp-trash{display:none!important}
  .m-back{display:inline-grid} 
}
.m-back{display:none;width:34px;height:34px;border-radius:10px;place-items:center;color:var(--text-2);margin-right:2px}
.m-back:hover{background:var(--bg-card)}
.m-back svg{width:18px;height:18px;stroke-width:2}
/* ══ M-MOBILE-01b: единый адаптивный топбар ══ */
/* M-SITE-FRONT-MOBILE-TOPBAR-07: mobile-only row, own separators, bounded entities. */
/* ============================================================================
 * M-SITE-FRONT-MOBILE-HEADER-22: два консистентных хедера (чат / Пространство).
 * Общий скелет: кружок 30px слева (аватар | эмодзи отдела) на одной позиции →
 * контент → шестерёнка/бургер справа. Никаких пилюль-обёрток. Тексты мягкие.
 * Разделители — вертикальные вмятины (тёмная насечка + светлый блик).
 * Распределение по всей ширине: активные приборы прижаты вправо через spacer.
 * ========================================================================== */
.mt{display:none;align-items:center;gap:9px;flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;height:100%}
/* кружок слева — единая позиция в обоих экранах (аватар и эмодзи отдела) */
.mt .mt-lead{flex:0 0 30px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:var(--bg-card);border:1px solid var(--border);font-size:13px;font-weight:600;line-height:1;user-select:none;overflow:hidden}
.mt .u-avatar.mt-av{position:static;width:30px;height:30px;font-size:13px;flex:0 0 30px}
/* эмодзи отдела и буква профиля — единый визуальный вес в кружке */
.mt span.mt-lead.dept-emoji{font-size:13.5px}
.mt .mt-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
/* чип модели — как на десктопе, фирменный цвет */
.mt .mt-model-probe .mt-chip{color:var(--primary);opacity:.85}
.mt .mt-tok{transform:none}
/* кликабельное имя — НЕ кнопка: текст + маленький шеврон, воздушно */
.mt .mt-name{display:flex;align-items:center;gap:4px;min-width:0;cursor:pointer;background:none;border:none;
  padding:0;font-family:inherit;color:var(--text);flex:0 1 auto}
.mt .mt-name .nm{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mt .mt-name .chev{width:11px;height:11px;flex:0 0 auto;color:var(--text-muted);stroke:currentColor;fill:none;stroke-width:2}
.mt-chat .mt-name .nm{flex:0 0 auto}
.mt .mt-dot{width:7px;height:7px;border-radius:50%;background:var(--danger);flex:0 0 auto;transition:background .3s}/* M-DEPT-SWITCH-FRONT-01: живая лампа связи */
.mt .mt-dot.on{background:var(--success)}
/* вмятина-разделитель: тёмная линия + светлый блик справа = эффект вдавленности */
.mt .mt-sep{width:2px;height:16px;flex:0 0 auto;border-radius:2px;
  background:linear-gradient(90deg,rgba(0,0,0,.22),rgba(0,0,0,.22) 1px,rgba(255,255,255,.06) 1px,rgba(255,255,255,.06))}
/* приборы (модель / кошелёк / расход) — воздушные, без рамок и фона */
.mt .mt-probe{display:flex;align-items:center;gap:5px;min-width:0;cursor:pointer;background:none;border:none;
  padding:0;font-family:inherit;color:var(--text-2);font-size:12.5px;white-space:nowrap;flex:0 1 auto}
.mt .mt-probe b{font-weight:600;color:var(--text);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mt .mt-probe .em{font-size:14px;flex:0 0 auto;line-height:1}
.mt .mt-probe svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;flex:0 0 auto;color:var(--text-muted)}
.mt .mt-probe .chev{width:11px;height:11px;color:var(--text-muted)}
.mt .mt-usage{color:var(--text-muted);font-size:11.5px}
.mt .mt-usage b{color:var(--text-2);font-weight:600}
.mt .mt-store{font-size:12.5px;color:var(--text-2);white-space:nowrap;flex:0 0 auto;font-weight:600}
.mt .dept-emoji{margin:0;flex:0 0 auto;line-height:1}
.mt .spacer{flex:1 1 auto;min-width:6px}
.sp-fab{position:fixed;right:16px;bottom:calc(78px + env(safe-area-inset-bottom,0px));width:54px;height:54px;border-radius:50%;background:var(--primary-fill);color:var(--on-primary);display:none;place-items:center;z-index:60;border:none;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35);touch-action:manipulation}
.sp-fab svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.4;transition:transform .18s ease}
.sp-fab[aria-expanded="true"] svg{transform:rotate(45deg)}
.sp-sheet{position:fixed;right:16px;bottom:calc(140px + env(safe-area-inset-bottom,0px));z-index:61;display:none;flex-direction:column;gap:1px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.sp-sheet.open{display:flex}
.sp-sheet button{display:flex;align-items:center;gap:9px;min-height:44px;padding:10px 14px;border-radius:9px;background:none;border:none;color:var(--text-2);font-size:0.9em;cursor:pointer;font-family:inherit}
.sp-sheet button:hover{background:var(--bg-0);color:var(--text)}
.cs-mob{display:none}
@media(max-width:820px) and (orientation:portrait){
  :root{--topbar-h:52px}
  .topbar{gap:0;padding:0 8px;overflow:hidden}
  /* На мобильном в flex-потоке живёт только один .mt-набор. Dropdown/modal остаются fixed/absolute. */
  .topbar>.brand,.topbar>.spacer,.topbar>.u-avatar{display:none}
  .topbar>.mt{order:1}
  .topbar>#siteSettings,.topbar>#navBurger{display:grid;order:2;width:34px;height:34px;flex:0 0 34px;border-radius:9px}
  .topbar>#navBurger{order:3}
  .topbar>#siteSettings svg,.topbar>#navBurger svg{width:18px;height:18px}
  /* M-MOBILE-01c: display:none родителя хоронит fixed-потомков — в .usage живут
     modelDd/walletDd/kmFolder/kmBook. Контейнер растворяем, прячем только приборы */
  .topbar>.usage{display:contents}
  .topbar>.usage>.u-item,.topbar>.usage>.u-sep{display:none}
  body:not(.m-space) .mt-chat{display:flex}
  body.m-space .mt-space{display:flex}
  /* M-SITE-FRONT-MOBILE-CHATBAR-22Q: полоса под хедером чата = десктопный chat-head
     (chatFull/chatCollapse/who). Глобальные правила (.chat-head ниже по файлу, вне @media)
     перебивали это скрытие по каскаду → полоса не убиралась. Бьём !important: на мобиле
     chat-head схлопнут в ноль (без границы/паддинга/фона), контролы разворота убраны. */
  .chat-head{height:0!important;min-height:0!important;padding:0!important;border:0!important;background:none!important;overflow:visible}
  .chat-head .who,.chat-head .h-btn,#chatFull,#chatCollapse{display:none!important}
  .wf-h .m-back{display:none} /* возврат переехал в топбар */
  .wf-h p{display:none}
  /* M-SITE-FRONT-MOBILE-SPACE-22E: плашки шире — уменьшаем боковой паддинг грида.
     Модалка сущности (reader) той же ширины, что грид (наследует padding wf-main). */
  .wf-main{padding:16px 11px}
  .wf-h{margin-bottom:14px;align-items:center}
  /* sheet Тетрадь/Папка падает вниз из-под плюса, у правого края грида */
  body.m-space .sp-sheet{position:fixed;right:11px;top:calc(var(--topbar-h) + 58px);bottom:auto;left:auto}
  .wf-actions{display:none} /* Тетрадь/Папка — в FAB */
  /* M-SITE-FRONT-MOBILE-GHOST-20A + 22C: rail-strip — сущность десктопа. На мобиле
     гасим И контейнер, И конкретные show-правила (.stage.*-rail .*-rail-strip),
     чтобы никакой всплывший класс work-rail/chat-rail не показал полосу под хедером. */
  .rail-strip,
  .stage.chat-rail .chat-rail-strip,
  .stage.work-rail .work-rail-strip{display:none!important}
  .stage.chat-rail .pane-chat,.stage.work-rail .pane-work{flex:1 1 0!important}
  .stage.chat-rail .chat-body,.stage.work-rail .wf-body{display:flex!important}
  .stage.chat-rail .divider,.stage.work-rail .divider{display:none}
  .sp-item-act{opacity:1}
  .sp-folder-h{cursor:default}
  .sp-pill[draggable="true"]{cursor:pointer}
  .cs-mob{display:flex}

  /* Позиционирование выпадашек на мобиле живёт ниже, в едином блоке
     M-SITE-FRONT-MOBILE-DROPDOWNS-08 (per-anchor), чтобы не было двух источников. */

  /* ── свайп-индикатор: две круглые точки внизу. Пространство слева → горит левая,
     чат справа → горит правая (соответствует раскладке: Пространство — левый экран). */
  .swipe-dots{position:fixed;left:0;right:0;bottom:calc(var(--keyboard-inset,0px) + 3px + env(safe-area-inset-bottom,0px));
    z-index:55;display:flex;justify-content:center;gap:8px;pointer-events:none}
  .swipe-dots{align-items:center;height:11px}
  .swipe-dots .chev{width:14.3px;height:14.3px;fill:none;stroke:var(--text-muted);stroke-width:1.8;opacity:.6}
  .swipe-dots .chev:first-child{transform:rotate(90deg);margin-right:3px}
  .swipe-dots .chev:last-child{transform:rotate(-90deg);margin-left:3px}
  .swipe-dots i{width:7px;height:7px;border-radius:50%;background:var(--text-muted);opacity:.4;transition:all .2s}
  body.m-space .swipe-dots i:nth-of-type(1),
  body:not(.m-space) .swipe-dots i:nth-of-type(2){opacity:.9;background:var(--primary)}
}
@media(min-width:821px){.swipe-dots{display:none}}
@media(orientation:landscape){.swipe-dots{display:none}}
@media(max-width:820px) and (orientation:portrait){
  body{--mobile-input-bottom:calc(26px + env(safe-area-inset-bottom,0px))}
  body.is-keyboard-open{--mobile-input-bottom:20.8px}
  html.korpus-immersive .swipe-dots{bottom:calc(var(--keyboard-inset,0px) + (var(--mobile-input-bottom) - 11px)/2)}
  html.korpus-immersive #mtUsage>:not(.chev),html.korpus-immersive #mtStoreBtn>:not(.chev){display:none}
  html.korpus-immersive #mtUsage,html.korpus-immersive #mtStoreBtn{margin-left:auto;flex:0 0 28px;min-height:32px;justify-content:center}
  html.korpus-immersive #mtUsage .chev,html.korpus-immersive #mtStoreBtn .chev{width:22px;height:22px}
  html.korpus-immersive #mtUsage+.spacer,html.korpus-immersive #mtStoreBtn+.spacer{display:none}
}
@media(max-width:390px){
  .topbar{padding:0 6px}
  .mt{gap:6px}
  .mt-space .mt-name .nm{max-width:78px}
  .mt .mt-store{max-width:52px}
}
@media(max-width:560px){ /* КАНОН МОДАЛОК: центр, почти во весь экран, поля 5px */
  .kmodal .km-card,.guest-wall .gw-card{width:calc(100vw - 10px);max-width:calc(100vw - 10px)}
}
.plate{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;
  transition:transform var(--sink),border-color var(--sink);cursor:pointer;position:relative}
.plate:hover{transform:translateY(-2px);border-color:var(--primary)}
.plate .row1{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.plate .fico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:var(--primary-soft);color:var(--primary)}
.plate.proc .fico{background:rgba(78,144,196,.15);color:var(--info)} .plate.doc .fico{background:rgba(63,164,106,.15);color:var(--success)}
.plate .fico svg{width:22px;height:22px;stroke-width:1.6}
.plate .nm{font-weight:600;font-size:14.5px;line-height:1.3} .plate .meta{font-size:12px;color:var(--text-muted);margin-top:2px}
.plate .foot{display:flex;gap:14px;font-size:12px;color:var(--text-2);padding-top:12px;border-top:1px solid var(--border-soft);margin-top:12px}
.plate .foot span{display:flex;align-items:center;gap:5px} .plate .foot svg{width:14px;height:14px;stroke-width:1.8}
.plate .born{position:absolute;top:12px;right:12px;font-size:10.5px;color:var(--text-muted)}
.hero-card{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:26px;display:flex;gap:22px;
  align-items:center;margin-bottom:22px}
.hero-card .big{width:60px;height:60px;border-radius:16px;background:var(--primary-soft);border:1px solid var(--primary);
  display:grid;place-items:center;color:var(--primary);flex:0 0 auto} .hero-card .big svg{width:32px;height:32px;stroke-width:1.5}
.hero-card h2{font-size:18px;font-weight:600;margin-bottom:6px} .hero-card p{font-size:13.5px;color:var(--text-2);max-width:560px}
.cal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.cal-h{padding:14px 18px;border-bottom:1px solid var(--border-soft);font-size:15px;font-weight:600}
.cal-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border-soft)} .cal-row:last-child{border:none}
.cal-date{flex:0 0 54px;text-align:center} .cal-date .d{font-size:20px;font-weight:700;color:var(--primary)} .cal-date .m{font-size:11px;color:var(--text-muted);text-transform:uppercase}
.cal-body{flex:1} .cal-body .t{font-weight:600;font-size:14px} .cal-body .s{font-size:12px;color:var(--text-muted);margin-top:2px}
.cal-tag{font-size:11px;padding:3px 10px;border-radius:999px;background:var(--warning);color:var(--on-primary);font-weight:600}

/* ===== CHAT ===== */
.chat-body{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0} /* M-CHATFIX-SCROLL-02 */
.chat-head{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border)}
/* M-SITE-GLEB-ICON-01c (слово CEO): логотип у Корпуса один — квадраты-дубли снесены.
   Печать отдела = эмодзи строкой перед именем шефа; MODE_META не пришла → печати нет (:empty). */
.dept-emoji{margin-right:6px}
.dept-emoji:empty{display:none}
.chat-head .who{flex:1;min-width:0} .chat-head .who .nm{font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px}
.chat-head .who .nm .dot{width:6px;height:6px;border-radius:50%;background:var(--danger);transition:background .3s;flex:0 0 auto}/* M-DEPT-SWITCH-CHAT-02: точка в строке с лейблом, база=красный */
.chat-head .who .nm .dot.on{background:var(--success)}
.chat-head .h-btn{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--text-muted);transition:all var(--sink)}
.chat-head .h-btn:hover{background:var(--bg-card);color:var(--text)} .chat-head .h-btn svg{width:18px;height:18px;stroke-width:1.8}
/* M-SITE-SETTINGS-01: шестерёнка чата — панель настроек озвучки/шрифта/голоса */
.chat-head{position:relative}
/* ═══ M-DEPT-SWITCH-CHAT-02: переключатель отдела в шапке чата (паттерн админки) ═══ */
.chief-pick{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:2px 4px;margin:-2px -4px;border-radius:8px;cursor:pointer;color:inherit;font:inherit;font-weight:600;max-width:100%;min-width:0}
.chief-pick:hover{background:var(--bg-card)}
.chief-pick #chatChiefLabel{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chief-pick .chief-chev{width:14px;height:14px;stroke-width:2;flex:0 0 auto;color:var(--text-muted);transition:transform var(--sink)}
.chief-pick[aria-expanded="true"] .chief-chev{transform:rotate(180deg)}
.chief-dd{position:fixed;z-index:96;min-width:220px;width:max-content;max-width:min(340px,calc(100vw - 16px));background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45);display:none;flex-direction:column;gap:1px;max-height:calc(100dvh - 72px);overflow:auto;overscroll-behavior:contain}/* M-DEPT-SWITCH-FIX-04: fixed + JS-позиция под триггером; top-level → над чатом */
.chief-dd.open{display:flex}
.chief-dd .md-hd{font-size:calc(11px * var(--fs-scale-half));letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);padding:8px 10px 6px}
.chief-dd .md-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;cursor:pointer}
.chief-dd .md-item:hover{background:var(--bg-0)}
.chief-dd .pp-role{margin-left:7px;font-size:calc(11px * var(--fs-scale-half));color:var(--text-muted)}/* M-SITE-PERSONA-SWITCH-01B: тихая подпись роли (шеф/зам) в выпадашке персон */
.chief-dd .md-item .md-check{width:14px;height:14px;flex:0 0 auto;color:var(--success);opacity:0}
.chief-dd .md-item.active .md-check{opacity:1}
.chief-dd .md-item .md-emo{flex:0 0 auto;font-size:15px;line-height:1}
.chief-dd .md-item b{font-size:calc(13px * var(--fs-scale-half));color:var(--text);font-weight:600}
#chatPersonaDd{min-width:0;width:max-content;max-width:calc(100vw - 16px);background:color-mix(in srgb,var(--bg-card) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
#chatPersonaDd .md-item{white-space:nowrap}
#chatPersonaDd .persona-adapter{color:var(--text-muted);font-weight:400}
.chief-dd .md-item .md-lock{width:13px;height:13px;stroke-width:1.9;flex:0 0 auto;margin-left:auto;color:var(--text-muted);opacity:.85}
.chief-dd .md-item.locked{opacity:.6;cursor:default}
.chief-dd .md-item.locked:hover{background:transparent}
.cs-dd{position:absolute;top:52px;right:12px;z-index:40;width:250px;background:var(--bg-card);
  border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45);
  display:none;flex-direction:column;gap:1px}
.cs-dd.open{display:flex}
.cs-hd{font-size:calc(11px * var(--fs-scale-half));letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);padding:8px 10px 6px}
.cs-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:9px}
.cs-item:hover{background:var(--bg-0)}
.cs-label{display:flex;align-items:center;gap:9px;font-size:calc(13px * var(--fs-scale-half));color:var(--text-2)}
.cs-label .ic{font-size:calc(14px * var(--fs-scale-half));width:18px;text-align:center;opacity:.85}
.cs-item.act{cursor:pointer} .cs-chev{color:var(--text-muted);font-size:calc(16px * var(--fs-scale-half))}
/* iOS-тумблер */
.cs-tgl{position:relative;width:36px;height:20px;flex:0 0 auto;cursor:pointer}
.cs-tgl input{position:absolute;opacity:0;width:0;height:0}
.cs-sl{position:absolute;inset:0;background:var(--bg-0);border:1px solid var(--border);border-radius:999px;transition:all .18s}
.cs-sl:before{content:'';position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:var(--text-muted);transition:all .18s}
/* M-SITE-THEME-FILL-01: трек = заливка, ручка = то, что НА ней. В светлой теме
   тёмная ручка ложилась на тёмную охру — включённый тумблер переставал читаться. */
.cs-tgl input:checked + .cs-sl{background:var(--primary-fill);border-color:var(--primary-fill)}
/* Ручка светлая — цвета своей темы, а не чёрный кружок: она переезжает
   по бирюзовой дорожке. Тонкая граница держит её видимой на светлой
   заливке, где иначе ручка слилась бы с дорожкой. */
.cs-tgl input:checked + .cs-sl:before{transform:translateX(16px);background:var(--knob);box-shadow:0 0 0 1px rgba(0,0,0,.18)}
.cs-note{padding:7px 10px 8px;color:var(--text-muted);font-size:calc(11px * var(--fs-scale-half));line-height:1.35;border-top:1px solid var(--border)}
.cs-note.err{color:var(--danger,#d96b6b)}
/* шрифт ± */
.cs-font{display:flex;align-items:center;gap:8px}
.cs-font b{min-width:20px;text-align:center;font-size:calc(12.5px * var(--fs-scale-half));color:var(--text)}
.cs-fbtn{width:24px;height:24px;border-radius:7px;background:var(--bg-0);border:1px solid var(--border);
  color:var(--text-2);font-size:14px;line-height:1;cursor:pointer;display:grid;place-items:center}
.cs-fbtn:hover{color:var(--text);border-color:var(--primary)}
/* гейт: регулятор скорости в пузыре — только при озвучке вкл (play всегда) */
body:not(.tts-on) .bubble-tts-speed{display:none}
.thread{flex:1;min-height:0;overflow-y:auto;padding:18px 14px;display:flex;flex-direction:column;gap:14px} /* M-CHATFIX-SCROLL-02 */
.msg{max-width:88%;display:flex;flex-direction:column;gap:4px} .msg.out{align-self:flex-end;align-items:flex-end}
.bubble{padding:11px 15px;border-radius:16px;font-size:0.933em;line-height:1.55;word-wrap:break-word} /* FONTSCALE-22N: em → глобальный множитель */
.msg.in .bubble{background:color-mix(in srgb,var(--bubble-in) 90%,transparent);border-bottom-left-radius:5px} .msg.out .bubble{background:linear-gradient(135deg,color-mix(in srgb,var(--bubble-out) 90%,transparent),color-mix(in srgb,var(--bubble-out-warm) 90%,transparent));border-bottom-right-radius:5px}
.msg .time{font-size:10.5px;color:var(--text-muted);padding:0 4px}
.bubble .chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.bubble .chip{font-size:12.5px;padding:6px 12px;border-radius:999px;background:var(--primary-soft);border:1px solid var(--primary);color:var(--primary);transition:all var(--sink)}
.bubble .chip:hover{background:var(--primary-fill);color:var(--on-primary)}
.typing{align-self:flex-start;display:none;gap:5px;padding:13px 16px;background:var(--bubble-in);border-radius:16px;border-bottom-left-radius:5px}
.typing.on{display:flex} .typing i{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:pulse 1.3s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
/* M-SITE-PULSE-RIGHT-01: пульс распознавания СПРАВА компактный (сообщение юзера),
   не на всю ширину; после распознавания сменяется стандартной репликой справа. */
@keyframes pulse{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
.composer{flex:0 0 auto;padding:12px 14px;border-top:1px solid var(--border)}
/* M-CONF-UX-16: композер чата = эталон зала (одна высота, одна геометрия) */
.composer .wrap{display:flex;align-items:center;gap:6px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:6px 10px;transition:border-color var(--sink)}
/* M-CONF-UX-17: подсветки в фокусе нет — курсора достаточно (как в зале) */
.composer .wrap:focus-within{border-color:var(--border)}
.composer .charcount{position:absolute;right:10px;bottom:calc(100% + 2px);visibility:hidden;text-align:right;font-size:10px;color:var(--text-muted);pointer-events:none}
.composer .charcount.on{visibility:visible}
.composer .charcount.at-limit{color:#c96a5a}
.composer .cbtn{width:calc(30px * var(--fs-scale-half));height:calc(30px * var(--fs-scale-half));border-radius:10px;display:grid;place-items:center;color:var(--text-muted);flex:0 0 auto;transition:all var(--sink)}
.composer .cbtn:hover{background:var(--bg-elev);color:var(--text)} .composer .cbtn svg{width:calc(17px * var(--fs-scale-half));height:calc(17px * var(--fs-scale-half));stroke-width:1.8}
.composer textarea{flex:1;min-width:0;width:0;background:none;border:none;resize:none;color:var(--text);font-family:inherit;font-size:13.5px;line-height:1.5;padding:2px;max-height:280px;outline:none;scrollbar-width:none}
.composer textarea::-webkit-scrollbar{display:none}
.composer textarea::placeholder{color:var(--text-muted)}
/* M-SITE-THEME-FILL-01: та самая кнопка отправки. Была: тёмная охра + почти
   чёрная стрелка в светлой теме. Стала: золото иконки в обеих темах. */
.composer .send{background:none;color:var(--text-muted)}
.composer .send.is-ready{background:var(--primary-fill);color:var(--on-primary)}
.composer .send.is-ready:hover{background:var(--primary-fill-hover)}
.composer .cbtn.busy{opacity:.5;cursor:wait}
.composer-live-stop{display:none;flex:1;align-self:stretch;align-items:center;justify-content:flex-start;gap:7px;min-width:0;margin:0;padding:2px 6px;background:none;border:0;color:var(--danger,#e05555);font-family:inherit;font-size:13.5px;font-weight:500;line-height:1.5;cursor:pointer}
.composer-live-stop b{font-size:11px;font-weight:700}
body.live-voice-on .composer textarea{display:none}
body.live-voice-on .composer .charcount{display:none}
body.live-voice-on .composer-live-stop{display:flex}
/* M-VOICE-VU-01: rec = статичный красный; пульс ТОЛЬКО под живой голос (.vu-live от WebAudio RMS) */
.mic.rec{background:var(--danger)!important;color:#fff!important}
.mic.rec.vu-live{animation:micpulse 1.2s infinite}
@keyframes micpulse{0%,100%{box-shadow:0 0 0 0 rgba(217,97,79,.5)}50%{box-shadow:0 0 0 7px rgba(217,97,79,0)}}
/* M-SITE-WELCOME-LIVE-01: подсказка первого касания микрофона */
.mic.hintpulse{animation:michint .9s ease 3}
@keyframes michint{0%,100%{box-shadow:0 0 0 0 rgba(214,162,69,.45)}50%{box-shadow:0 0 0 8px rgba(214,162,69,0)}}
.composer .wrap{position:relative}
.mic-hint{position:absolute;right:46px;bottom:calc(100% + 8px);font-size:12px;color:var(--text-2);
  background:var(--bg-card);border:1px solid var(--border);border-radius:9px;padding:5px 9px;
  white-space:nowrap;opacity:1;transition:opacity .8s ease;pointer-events:none}
.mic-hint.fade{opacity:0}
/* M-GUEST-01: гостевая полоска (дни знакомства) + стена подписки */
.guest-bar{display:none;align-items:center;gap:10px;padding:7px 18px;background:var(--bg-1);border-bottom:1px solid var(--border);font-size:12.5px;color:var(--text-2)}
.guest-bar.on{display:flex}
.guest-bar b{color:var(--text)}
.guest-bar .gb-cta{margin-left:auto;padding:5px 12px;border-radius:9px;background:var(--primary-fill);color:var(--on-primary);font-weight:600;font-size:12.5px;text-decoration:none}
.guest-wall{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;background:rgba(10,12,15,.78)}
.guest-wall.on{display:flex}
.guest-wall .gw-card{width:min(430px,92vw);background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:22px 20px}
.guest-wall h2{font-size:17px;margin:0 0 8px}
.guest-wall p{font-size:13px;color:var(--text-2);margin:0 0 14px;line-height:1.55}
.guest-wall .gw-cta{display:block;text-align:center;padding:11px;border-radius:11px;background:var(--primary-fill);color:var(--on-primary);font-weight:700;text-decoration:none}
/* M-GUEST-02: «Сохранить пространство» — кнопка в полоске + модалка ключей.
   Выделение — белые линии (канон PROD_9); янтарь — только бренд-кнопки. */
.guest-bar .gb-save{padding:5px 12px;border-radius:9px;background:transparent;color:var(--text);border:1px solid var(--border);font-weight:600;font-size:12.5px;cursor:pointer}
.guest-bar .gb-save:hover{border-color:var(--text-2)}
/* M-MOBILE-01a: полоска гостя на узком — дни сверху, кнопки этажом ниже во всю ширину */
@media(max-width:560px){
  .guest-bar{flex-wrap:wrap;row-gap:8px;padding:8px 12px;max-height:120px}
  .guest-bar>span{flex:1 1 100%}
  .guest-bar .gb-cta{margin-left:0;flex:1 1 0;text-align:center;min-height:44px;padding:11px 8px}
  .guest-bar .gb-save{flex:1 1 0;min-height:44px;padding:10px 8px}
}
.gw-card button.gw-cta{border:0;width:100%;cursor:pointer;font-size:13.5px;font-family:inherit}
.gsave-form{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}
.gsave-form input{padding:9px 11px;border-radius:10px;border:1px solid var(--border);background:var(--bg-0);color:var(--text);font-size:13px;outline:none}
.gsave-form input:focus{border-color:var(--text-2)}
.gsave-msg{font-size:12.5px;min-height:16px;margin:0 0 10px;color:var(--text-2)}
.gsave-msg.err{color:var(--danger)}
.gsave-msg.ok{color:var(--success)}
.gsave-x{margin-top:8px;display:block;width:100%;text-align:center;padding:9px;border-radius:11px;background:transparent;color:var(--text-2);border:1px solid var(--border);font-size:13px;cursor:pointer;font-family:inherit}
.gsave-x:hover{color:var(--text)}

/* ── SITE-RENDER-01: единый рендер чат-бара. Стрим-пузыри шефа = одежда сайта
   (.msg.in .bubble), классы stream-bubble-* — якоря движка, палитра ТОЛЬКО токены
   темы (светлая/тёмная бесплатно, ноль хексов). Заменяет админский блок М2б. ── */
.stream-bubble{transition:opacity .2s ease}
.msg.in .bubble .stream-bubble-header{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-muted);margin-bottom:5px;font-weight:500}
.stream-bubble-emoji{font-size:14px;line-height:1}
.stream-bubble-headtext{font-style:italic}
.stream-bubble-body{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;line-height:1.55;min-height:1em}
.stream-bubble-body:empty{display:none}
.stream-bubble-finished .stream-bubble-headtext{display:none} /* тихий финиш (02c): остаётся печать отдела */
.stream-bubble-cancelled{opacity:.55}
.stream-bubble-cancelled .stream-bubble-headtext{color:var(--danger);font-style:normal}
/* inline-клавиатуры карточек/меню корпуса — вид сайтовых чипов */
.bubble-inline-keyboard{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-width:360px}
.bubble-inline-keyboard:first-child{margin-top:0}
.bubble-inline-row{display:flex;gap:6px}
/* M-SITE-VOICEPICK-FIX-01: карточки-меню по-тг — лёгкие полупрозрачные ячейки,
   аккуратный радиус (не пилюли-фары), приглушённый текст, мягкий hover. Ровные
   колонки (flex:1) — 2 колонки садятся 50/50. Токены темы (работает в тёмной и светлой). */
/* M-SITE-RENDER-CONSOLIDATE-01: ячейки по-тг — компактные, ровные колонки (flex:1 1 0
   → 50/50), база чуть ярче (bg-elev), hover тонкий акцент рамки без «фар». */
.bubble-inline-btn{flex:1 1 0;min-width:0;text-align:center;font-size:12.5px;padding:7px 10px;
  border-radius:9px;background:var(--bg-elev);border:1px solid var(--border-soft);color:var(--text-2);
  transition:border-color .15s,color .15s,background .15s;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bubble-inline-btn:hover{border-color:var(--primary);color:var(--text)}
.bubble-inline-btn:active{background:var(--bg-card)}
/* M-SITE-MENU-CSS-01: карточка-меню — ощущение меню, не чат-пузырь. Обезпузыриваем
   контейнер (прозрачный, без рамки/тени/паддинга бабла), ограничиваем ширину. */
.msg.in .bubble.korpus-card{background:transparent;border:none;box-shadow:none;padding:0;max-width:400px}
.msg.in .bubble.korpus-card .stream-bubble-header{margin-bottom:8px}
/* markdown внутри пузырей (живых и истории) */
.bubble .md-pre{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:9px 11px;margin:7px 0;overflow-x:auto;font-size:12.5px}
/* M-BUBBLE-COPY-01 (site port): редакторские код-блоки + копирование пузыря.
   Минимализм на токенах темы (работает в тёмной и светлой). */
.md-codeblock{margin:8px 0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg-elev);max-width:100%}
.md-codeblock-bar{display:flex;justify-content:space-between;align-items:center;padding:3px 5px 3px 12px;background:var(--border-soft);border-bottom:1px solid var(--border);font-size:10.5px;user-select:none}
.md-codeblock-lang{text-transform:lowercase;letter-spacing:.5px;color:var(--text-muted);opacity:.8}
.md-codeblock-copy{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-muted);opacity:.6;cursor:pointer;padding:4px 7px;border-radius:5px;transition:opacity .15s,background .15s,color .15s}
.md-codeblock-copy:hover{opacity:.95;background:var(--border-soft);color:var(--text)}
.md-codeblock-copy.copied{opacity:.95;color:#7cbf93}
.bubble .md-codeblock .md-pre,.md-codeblock .md-pre{margin:0;border:0;border-radius:0;background:transparent;padding:9px 12px;overflow-x:auto}
.md-codeblock .md-pre code{white-space:pre;word-break:normal;overflow-wrap:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5;color:var(--text);display:block;min-width:0}
.bubble,.stream-bubble{position:relative}
.bubble-copy-btn{position:absolute;top:6px;right:6px;z-index:5;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:var(--bg-elev);color:var(--text-muted);line-height:1;padding:5px;cursor:pointer;opacity:0;transition:opacity .18s,color .15s,background .15s}
.bubble:hover>.bubble-copy-btn,.stream-bubble:hover>.bubble-copy-btn{opacity:.6}
.bubble-copy-btn:hover{opacity:.95!important;color:var(--text)}
.bubble-copy-btn.copied{opacity:.95!important;color:#7cbf93}
@media (hover:none){.bubble-copy-btn{opacity:.4}}
.stream-bubble>.bubble-copy-btn{top:30px}
/* M-SITE-VOICE-CHECKS-01: галочки доставки на голосовом пузыре (шкала CEO 25.08) */
.voice-lite .vl-checks{margin-left:6px;font-size:.72rem;letter-spacing:-1px;vertical-align:baseline}
.vl-checks.sent,.vl-checks.accepted{color:var(--text-muted)}
.vl-checks.delivered{color:#62a8e5}
.vl-checks.failed{color:#e74c3c;letter-spacing:0}
.bubble .md-code{background:var(--bg-elev);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:12.5px}
.bubble .md-li{display:block;padding-left:6px}
.bubble .md-hr{border:none;border-top:1px solid var(--border);margin:8px 0}
.bubble .md-h{display:block;margin:7px 0 3px}
.bubble a{color:var(--primary)}
/* файловые плашки живых пузырей (bubble_file) */
.bubble .bubble-file-attachment{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--text)}
.bubble .bubble-file-attachment .file-icon{font-size:20px}
.bubble .bubble-file-attachment .file-name{font-size:13px;font-weight:500}
.bubble .bubble-file-attachment .file-meta{font-size:11px;color:var(--text-muted)}
/* M-SITE-VOICE-LIGHT-01: ЛЁГКИЙ голосовой пузырь — наш дизайн, время ПОД пузырём.
   Метаданные, текст и подтверждение занимают отдельные строки. */
.voice-row .bubble.voice-lite{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px 8px;font-size:0.933em;line-height:1.5}
.vl-icon{font-size:0.933em;flex-shrink:0;opacity:.85}
.vl-timer{font-variant-numeric:tabular-nums;font-size:0.833em;color:var(--text-2);flex-shrink:0}
.vl-dots{display:inline-flex;gap:3.5px;align-items:center}
/* M-MSGR-PULSE-CIRCLE-01: единый пульс вход/выход, кружки −15% (5→4.25px) */
.vl-dots i{width:4.25px;height:4.25px;border-radius:50%;background:var(--text-muted);animation:vlpulse 1.2s ease-in-out infinite}
.stream-bubble-body .wait-pulse{padding:1px 0}
/* M-SITE-TTS-CTRL-01: контролы озвучки в пузыре — лаконично, второстепенно.
   play + тонкий регулятор на одной линии; кружок на тонкой muted-линии, без фона. */
.bubble-tts-controls{display:flex;align-items:center;gap:10px;margin-top:7px}
.bubble-tts-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;
  font-size:12px;line-height:1;padding:1px 2px;opacity:.6;transition:opacity .15s,color .15s}
.bubble-tts-btn:hover{opacity:1;color:var(--text)}
.bubble-tts-btn.bubble-tts-buffering{display:inline-grid;place-items:center;width:16px;height:16px;
  padding:0;opacity:.92;color:var(--text);cursor:progress}
.bubble-tts-btn.bubble-tts-buffering::before{content:"";box-sizing:border-box;width:12px;height:12px;
  border:1.5px solid color-mix(in srgb,var(--text-muted) 38%,transparent);border-top-color:var(--text);
  border-radius:50%;animation:bubbleTtsSpin .72s linear infinite}
@keyframes bubbleTtsSpin{to{transform:rotate(1turn)}}
.bubble-tts-seek{display:flex;align-items:center;gap:6px;flex:1;min-width:92px;opacity:.58}
.bubble-tts-seek[hidden]{display:none}
.bubble-tts-seek-range{-webkit-appearance:none;appearance:none;width:min(190px,28vw);min-width:76px;
  height:12px;cursor:pointer;margin:0;padding:0;background:transparent}
.bubble-tts-seek-range::-webkit-slider-runnable-track{height:1.5px;border-radius:2px;
  background:linear-gradient(to right,var(--text) var(--seek-progress,0%),var(--text-muted) var(--seek-progress,0%))}
.bubble-tts-seek-range::-moz-range-track{height:1.5px;border-radius:2px;background:var(--text-muted)}
.bubble-tts-seek-range::-moz-range-progress{height:1.5px;background:var(--text)}
.bubble-tts-seek-range::-webkit-slider-thumb{-webkit-appearance:none;width:8px;height:8px;border-radius:50%;
  background:var(--text-muted);border:0;margin-top:-3.25px}
.bubble-tts-seek-range::-moz-range-thumb{width:8px;height:8px;border-radius:50%;background:var(--text-muted);border:0}
.bubble-tts-time{font-size:9px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.bubble-tts-speed{display:flex;align-items:center;gap:3px;margin-left:auto;opacity:.5;transition:opacity .15s;user-select:none}
.bubble-tts-controls:hover .bubble-tts-speed{opacity:.85}
.bubble-tts-speed-step{display:inline-grid;width:22px;height:22px;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;color:var(--text-muted);font:500 17px/1 inherit;cursor:pointer;touch-action:manipulation}
.bubble-tts-speed-step:hover,.bubble-tts-speed-step:focus-visible{background:var(--border-soft);color:var(--text);outline:0}
.bubble-tts-speed-val{font-size:10px;color:var(--text-muted);opacity:.85;min-width:29px;text-align:center;font-variant-numeric:tabular-nums}
.vl-dots i:nth-child(2){animation-delay:.2s}.vl-dots i:nth-child(3){animation-delay:.4s}
@keyframes vlpulse{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}
.vl-text{color:var(--text);word-break:break-word}
/* recording: 🎙️ мигает, таймер тикает, пульс, текста нет */
.bubble.voice-lite[data-state="recording"] .vl-icon{animation:vlblink 1s ease-in-out infinite}
.bubble.voice-lite[data-state="recording"] .vl-text,
.bubble.voice-lite[data-state="uploading"] .vl-text,
.bubble.voice-lite[data-state="streaming"] .vl-text{display:none}
@keyframes vlblink{0%,100%{opacity:1}50%{opacity:.4}}
/* uploading/streaming: таймер замер, пульс крутится, ждём текст */
.bubble.voice-lite[data-state="uploading"] .vl-icon,
.bubble.voice-lite[data-state="streaming"] .vl-icon{animation:none;opacity:.5}
/* done: пульс убран, таймер убран, только 🎙️ + текст */
.bubble.voice-lite[data-state="done"] .vl-dots,
.bubble.voice-lite[data-state="done"] .vl-timer{display:none}
.bubble.voice-lite[data-state="done"] .vl-icon{opacity:.6}
/* failed: 🎙️ серый, текст красный */
.bubble.voice-lite[data-state="failed"] .vl-dots,
.bubble.voice-lite[data-state="failed"] .vl-timer{display:none}
.bubble.voice-lite[data-state="failed"] .vl-icon{opacity:.4;filter:grayscale(1)}
.bubble.voice-lite[data-state="failed"] .vl-text{color:var(--danger,#e05555)}
/* M-SITE-VOICE-CANCEL: строка ввода в режиме «Отмена» при записи */
#input.as-cancel{cursor:pointer;color:var(--danger,#e05555);caret-color:transparent}
#input.as-cancel::placeholder{color:var(--danger,#e05555);opacity:.9;font-weight:500}

/*M-SITE-UNIFY-03: ЛОГО-КАНОН — один кусок CSS на всех страницах, эталон workflow.
  Пиним всё, что наследовалось и прыгало: размер, межбуквенный, line-height, цвет. */
a.brand,.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.3px;
  font-size:15px;line-height:1;color:var(--text);text-decoration:none;cursor:pointer;white-space:nowrap}
/*M-BRAND-ICON-01: марка = сама иконка приложения. Один артефакт на всё — PWA, favicon,
  хедер, офлайн. Буква (Poppins Bold) запечена в файл намеренно: системный шрифт рисует K
  по-своему на каждой ОС, поэтому марка в хедере и марка в иконке расходились. Segoe UI и
  SF Pro в бренд-марку нельзя по лицензии — отсюда свободный шрифт.
  Заливки-цветом нет намеренно: под PNG со скруглённым силуэтом она вылезала бы углами.
  :hover не трогаем — brightness(1.08) как был. */
.brand .mark{width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center;
  color:transparent;font-weight:800;font-size:16px;letter-spacing:0;
  background:url('/icons/icon-192.png?v=20260718-icon2') center/contain no-repeat}
.brand:hover .mark{filter:brightness(1.08)}

/* M-SITE-FRONT-MOBILE-DROPDOWNS-08 → HEADER-22C: выпадашки по якорю, не на весь экран.
   Кошелёк — широкий (истории/промо нужно место). Остальные — адаптив по контенту,
   прижаты к своему краю (профиль/модель слева, бургер/шестерёнка справа). */
@media(max-width:820px) and (orientation:portrait){
  .topbar>.cs-dd,
  .topbar>.nav-dd,
  .topbar>.profile-dd,
  .topbar>.usage>.model-dd,
  .topbar>.usage>.wallet-dd{
    position:fixed;
    top:calc(var(--topbar-h) + 4px);
    transform:none;
    max-height:calc(100dvh - var(--topbar-h) - 9px);
    overflow:auto;
    overscroll-behavior:contain;
    z-index:95;
    background:color-mix(in srgb,var(--bg-card) 90%,transparent);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    box-shadow:0 10px 34px rgba(0,0,0,.5);
    animation:mtDropIn .15s ease-out;
  }
  /* профиль и модель — прижаты ВЛЕВО, ширина по контенту */
  .topbar>.profile-dd{left:8px;right:auto;width:max-content;min-width:210px;max-width:calc(100vw - 16px)}
  .topbar>.usage>.model-dd{left:11px!important;right:11px!important;top:calc(var(--topbar-h) + 3px)!important;width:auto!important;min-width:0!important;max-width:none!important}
  /* бургер и шестерёнка — прижаты ВПРАВО, ширина по контенту */
  .topbar>.nav-dd{right:8px;left:auto;width:max-content;min-width:210px;max-width:calc(100vw - 16px)}
  .topbar>.cs-dd{right:8px;left:auto;width:max-content;min-width:210px;max-width:calc(100vw - 16px)}
  .topbar .store-dd{position:fixed;top:calc(var(--topbar-h) + 4px);right:8px;left:auto;width:max-content;min-width:210px;max-width:calc(100vw - 16px);
    background:color-mix(in srgb,var(--bg-card) 90%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    box-shadow:0 10px 34px rgba(0,0,0,.5);animation:mtDropIn .15s ease-out;z-index:95}
  /* кошелёк — широкий на весь экран (истории/кнопкам/промо нужно место): 2px края, 3px от хедера */
  .topbar>.usage>.wallet-dd{left:11px!important;right:11px!important;top:calc(var(--topbar-h) + 3px)!important;width:auto!important;min-width:0!important;max-width:none!important}
  /* M-DEPT-SWITCH-FIX-04: .chief-dd теперь базово fixed + JS-позиция — мобильный
     !important-блок больше не нужен. Иконка отдела — круг как аватар (.mt-lead 50%);
     свой border-radius НЕ навязываем (он ломал круг в прямоугольник). */
  .mt-chat #mtDept{cursor:pointer}
  .mt-chat #mtDept:active{opacity:.55}
  @keyframes mtDropIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
}

/* M-SITE-FRONT-DATA-GUARD-09: mandatory-data failure blocks the app; no fake values */
.app-data-error{
  position:fixed;inset:0;z-index:1000;display:grid;place-items:center;
  min-height:100dvh;padding:10px;overflow:auto;overscroll-behavior:contain;
  background:linear-gradient(145deg,#3a1114 0%,#220b0d 52%,#140607 100%);
  color:#fff;
}
.app-data-error[hidden]{display:none!important}
.app-data-error__card{
  width:min(560px,100%);padding:28px;border:1px solid rgba(255,126,126,.55);
  border-radius:18px;background:rgba(33,7,9,.92);box-shadow:0 24px 80px rgba(0,0,0,.5);
  text-align:center;
}
.app-data-error__mark{
  width:58px;height:58px;margin:0 auto 18px;border:2px solid #ff7b72;border-radius:18px;
  display:grid;place-items:center;background:rgba(217,97,79,.18);color:#ff9a91;
  font-size:34px;font-weight:800;line-height:1;
}
.app-data-error h1{font-size:clamp(20px,4vw,28px);line-height:1.2;margin:0 0 10px}
.app-data-error p{max-width:460px;margin:0 auto;color:#f0c7c4;font-size:14px;line-height:1.55}
.app-data-error__code{
  display:inline-flex;margin:18px 0 0;padding:6px 10px;border-radius:8px;
  background:rgba(0,0,0,.24);color:#ffaaa3;font:600 12px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;
  overflow-wrap:anywhere;
}
.app-data-error__retry{
  display:block;min-width:150px;min-height:44px;margin:18px auto 0;padding:10px 18px;
  border:1px solid #ff8b82;border-radius:11px;background:#d9614f;color:#fff;
  font:600 14px/1 var(--font);cursor:pointer;
}
.app-data-error__retry:hover{background:#e56c5a}
.app-data-error__retry:focus-visible{outline:3px solid rgba(255,255,255,.8);outline-offset:3px}
.app-data-error__retry:disabled{opacity:.6;cursor:wait}
@media(max-width:560px){
  .app-data-error{padding:5px}
  .app-data-error__card{width:calc(100vw - 10px);padding:24px 18px;border-radius:16px}
}
@media(prefers-reduced-motion:reduce){.app-data-error__retry,.sp-fab svg{transition:none}}

/* M-SITE-FRONT-BILLING-WORKFLOW-14: in-app provider chooser */
.billing-modal{position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;padding:10px;background:rgba(8,10,13,.72)}
.billing-modal.open{display:flex}
.billing-card{width:min(460px,calc(100vw - 20px));max-height:calc(100dvh - 20px);overflow:auto;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:0 22px 80px rgba(0,0,0,.55);scrollbar-width:none}
.billing-card::-webkit-scrollbar{display:none}
.billing-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:15px}.billing-head>div{flex:1;min-width:0}.billing-head h2{font-size:18px}.billing-head p{font-size:12.5px;color:var(--text-muted);margin-top:4px}
.billing-close{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--text-muted);font-size:23px;line-height:1}.billing-close:hover{background:var(--bg-elev);color:var(--text)}.billing-close:disabled{opacity:.45}
.billing-methods{display:flex;flex-direction:column;gap:9px}.billing-method{width:100%;min-height:50px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;text-align:left;padding:11px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg-0);color:var(--text)}
.billing-method:hover,.billing-method:focus-visible{border-color:var(--primary);outline:none}.billing-method:disabled{opacity:.55}.billing-method__mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:800;flex:0 0 auto}.billing-method b{font-size:14px}.billing-method small{display:block;color:var(--text-muted);font-size:12px;margin-top:2px}
/* M-BRAND-PAYICONS-05: касса v3 — пилюли снесены (не кликаются — врут
   аффордансом, кликается вся кнопка). Кнопка компактная, одна линия:
   марка провайдера + голый ряд родных знаков. Пары тем: .pm-d видима по
   умолчанию, .pm-l включается светлой темой (классы наши, правило глобальное). */
/* M-KASSA-POLISH-08: пары тем контекстно и с весом (0,2,1)+ — в 05-м голый
   голое правило скрытия (0,1,0) проигрывало собственным .bm-marks .pm-img
   {display:block} (0,2,0), и обе версии знака были видимы разом (дубль марок
   на скрине CEO). Порядконезависимо: hide бьёт block весом, light бьёт hide. */
.bm-marks img.pm-l,.bm-brand img.pm-l{display:none}
:root[data-theme="light"] .bm-marks img.pm-d,:root[data-theme="light"] .bm-brand img.pm-d,:root[data-theme="mist"] .bm-marks img.pm-d,:root[data-theme="mist"] .bm-brand img.pm-d{display:none}
:root[data-theme="light"] .bm-marks img.pm-l,:root[data-theme="light"] .bm-brand img.pm-l,:root[data-theme="mist"] .bm-marks img.pm-l,:root[data-theme="mist"] .bm-brand img.pm-l{display:block}
.bm-brand{display:flex;align-items:center;flex:0 0 auto}
.bm-brand .pm-prov{height:22px;width:auto;display:block}
.bm-brand--text{font-size:15px;font-weight:600}
.bm-marks{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-left:auto;min-width:0}
.bm-marks .pm-img{height:18px;width:auto;display:block}
.bm-marks .pm-glyph{width:18px;height:18px;display:block;color:var(--text-muted)}
.bm-label{font-size:12px;color:var(--text-muted);white-space:nowrap}
@media (max-width:480px){.bm-marks{margin-left:0;width:100%;gap:10px}.bm-marks .pm-img{height:16px}}
.billing-status{display:none;border:1px solid var(--border);background:var(--bg-0);border-radius:13px;padding:15px}.billing-status.on{display:block}.billing-status.pending{border-color:var(--primary)}.billing-status.ok{border-color:var(--success)}.billing-status.err{border-color:var(--danger)}.billing-status h3{font-size:15px;margin-bottom:6px}.billing-status p{font-size:13px;color:var(--text-2);line-height:1.5}
.billing-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.billing-action{display:inline-flex;align-items:center;justify-content:center;padding:9px 13px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--text);text-decoration:none;font-size:13px}.billing-action.primary{background:var(--primary-fill);border-color:var(--primary-fill);color:var(--on-primary);font-weight:700}
@media(max-width:560px){.billing-modal{align-items:flex-start;padding:calc(var(--topbar-h) + 5px) 5px 5px}.billing-card{width:calc(100vw - 10px);max-height:calc(100dvh - var(--topbar-h) - 10px);border-radius:15px;padding:16px}}

/* M-SITE-FRONT-MOBILE-SHELL-16: locked visual viewport, keyboard-safe flex chain, guarded swipe. */
@media(max-width:820px) and (orientation:portrait){
  html,body{overscroll-behavior:none}
  body.is-viewport-resizing .pane-work,
  body.is-viewport-resizing .pane-chat{transition:none!important}
  .pane-work,.pane-chat,.wf-body,.wf-main,.chat-body,.thread{min-height:0}
  .wf-main,.thread,.nav-dd,.cs-dd,.model-dd,.wallet-dd,.profile-dd,
  .kmodal .km-card,.guest-wall .gw-card,.billing-card{
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch
  }
  .composer{padding-top:8.4px;padding-bottom:var(--mobile-input-bottom)}
  body.is-keyboard-open .sp-fab,
  body.is-keyboard-open .sp-sheet{display:none!important}
  .composer .wrap{gap:4px;padding:5px 8px}
  .composer textarea{font-size:16px;max-height:min(160px,calc(var(--app-vh,100dvh)*.3))} /* 16px — без автозума iOS */
  .kmodal input,.profile-dd input,.wallet-dd input{font-size:max(16px,1.067em)}
}

/* ═══ M-SITE-SPACE-DRAGDROP-01 (22y): раскладка руками — грид невидим, плитки порхают ═══ */
.sp-pill{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none} /* long-press без системного меню/выделения (iOS+Android) */
.sp-flip{transition:transform .22s cubic-bezier(.2,.8,.2,1)} /* FLIP-перелёт на новое место */
.sp-ghost{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;opacity:.92;margin:0;
  transform:translate3d(-200vw,-200vh,0);box-shadow:0 14px 34px rgba(0,0,0,.38);border-radius:15px;transition:none;
  background:var(--bg-card);border:1px solid var(--sel)} /* призрак под пальцем: чуть приподнят тенью */
:root[data-theme="light"] .sp-ghost,:root[data-theme="mist"] .sp-ghost{box-shadow:0 14px 34px rgba(40,30,10,.22)}
body.sp-dragging{-webkit-user-select:none;user-select:none}
body.sp-dragging #wfMain{overscroll-behavior:contain} /* автоскролл грида не дёргает страницу */

/* ── M-SITE-USAGE-04 (23b): выпадашка «Сессия» — зеркало кошелька ──
   Геометрия и высота ленты — целиком донорские (.wallet-dd/.wd-hist).
   Слайдер «памяти» удалён: контекстное окно у моделей разное. */
.u-item#uSessBtn{cursor:pointer}
.sess-dd .sd-sub{padding:0 10px 8px;font-size:calc(11px * var(--fs-scale-half));color:var(--text-muted)}

/* ── M-SITE-USAGE-05 (23c): сессия ↔ место — консистентность десктоп/мобила ── */
.u-item#uStoreBtn{cursor:pointer}
.store-dd .sd-track{height:5px;border-radius:4px;background:var(--bg-0);overflow:hidden;margin:2px 10px 8px}
.store-dd .sd-track .fill{display:block;height:100%;width:0;background:var(--sel);border-radius:4px}

/* ── M-SITE-USAGE-07 (23f): высота сессии = кошелёк ПО ПОСТРОЕНИЮ — панель
   цифрой не растягиваем (у кошелька своя удачная высота — слово CEO); лента
   тернов фиксированно добирает ровно то, что у кошелька занимают пополнение+
   промо+сообщение (196 истории + ~108 блоков = 304). ── */
.sess-dd .wd-hist{height:304px;max-height:304px}
.sess-dd .sd-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 10px 8px}
.sess-dd .sd-top .wd-bal{padding:0}
.sess-dd .sd-toks{font-size:calc(15px * var(--fs-scale-half));font-weight:600;color:var(--text);white-space:nowrap}

/* M-SIDE-HEAD-01: шапка сайдбара — минимал: имя пространства · тариф (одна строка) + выпадашка тарифа */
.wf-side .head{position:relative}
.wf-side .head .th-line{display:flex;align-items:center;gap:7px;font-size:calc(13.5px * var(--fs-scale-half));min-width:0}
.wf-side .head .th-tenant{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}
.wf-side .head .th-sep{color:var(--text-muted);flex:0 0 auto}
.wf-side .head .th-tariff{display:inline-flex;align-items:center;gap:3px;color:var(--text-2);cursor:pointer;border-radius:7px;padding:2px 5px;margin:-2px 0;flex:0 0 auto;font:inherit}
.wf-side .head .th-tariff:hover{background:var(--bg-card);color:var(--text)}
.wf-side .head .th-tariff .chev{width:11px;height:11px;opacity:.55;stroke:currentColor;fill:none}
.tariff-dd{position:absolute;z-index:41;left:8px;right:8px;top:calc(100% - 2px);background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45);display:none;flex-direction:column;gap:1px}
.tariff-dd.open{display:flex}
.tariff-dd .md-hd{font-size:calc(11px * var(--fs-scale-half));letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);padding:8px 10px 6px}
.tariff-dd .md-item{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border-radius:9px;cursor:pointer}
.tariff-dd .md-item:hover{background:var(--bg-0)}
.tariff-dd .md-item .md-check{width:14px;height:14px;flex:0 0 auto;color:var(--success);opacity:0}
.tariff-dd .md-item.active .md-check{opacity:1}
.tariff-dd .md-item b{font-size:calc(13px * var(--fs-scale-half));color:var(--text)}
/* M-SITE-MODES-01a-2: закрытый тариф в выпадашке — притушен + замок справа.
   Донор — .chief-dd .md-item.locked (замки режимов), те же числа, чтобы
   замок везде читался одинаково. Клик НЕ гасим: он ведёт на /pricing, где
   человек и увидит состав тарифа и мёртвую кнопку. */
.tariff-dd .md-item.locked{opacity:.6;cursor:default}
.tariff-dd .md-item.locked:hover{background:transparent}
.tariff-dd .md-item .md-lock{width:13px;height:13px;stroke-width:1.9;flex:0 0 auto;margin-left:auto;color:var(--text-muted);opacity:.85}
.tariff-dd .md-item .md-hint{font-size:calc(11.5px * var(--fs-scale-half));color:var(--text-muted);margin-top:2px}
.tariff-dd .md-note{padding:7px 10px 6px;font-size:calc(11px * var(--fs-scale-half));color:var(--text-muted);border-top:1px solid var(--border);margin-top:4px}

/* ═══ M-SITE-INTEGRA-FRONT-01 · IG-VITRINA: витрина интеграций ═══ */
.ig-wrap{padding:4px 2px}
.ig-hd{font-size:20px;font-weight:700;margin-bottom:4px}
.ig-sub{color:var(--text-dim);font-size:13px;margin-bottom:16px}
.ig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.ig-card{background:var(--bg-card);border:1px solid var(--border);border-radius:15px;padding:14px;cursor:pointer;transition:border-color .15s;touch-action:pan-y}
.ig-card:hover{border-color:var(--accent)}
.ig-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ig-ico{font-size:20px}
.ig-name{font-size:15px;flex:1}
.ig-badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);white-space:nowrap}
.ig-badge.ok{color:#3fb96a;border-color:#3fb96a55}
.ig-badge.warn{color:#d9a334;border-color:#d9a33455}
.ig-badge.off{color:var(--text-dim)}
.ig-badge.err{color:#d9534f;border-color:#d9534f55}
.ig-desc{font-size:13px;color:var(--text-dim);line-height:1.45;margin-bottom:8px}
.ig-meta{display:flex;gap:12px;font-size:12px;color:var(--text-dim)}
.ig-meta a{color:var(--accent);text-decoration:none}
.ig-cat{margin-top:10px;border-top:1px solid var(--border);padding-top:8px;max-height:300px;overflow-y:auto;scrollbar-width:none}
.ig-cat::-webkit-scrollbar{display:none}
.ig-m{display:flex;gap:10px;padding:4px 0;font-size:12px;align-items:baseline}
.ig-m code{color:var(--accent);white-space:nowrap}
.ig-m span{color:var(--text-dim)}
.ig-cat-load{color:var(--text-dim);font-size:13px;padding:8px 0}
.ig-error{color:#d9534f;border:1px solid #d9534f55;border-radius:12px;padding:12px 14px;font-size:13px}

/* ═══ M-SITE-INTEGRA-DESK-03 · IG-DESK: грид+drag, зеркало, деталь, окно метода ═══ */
.ig-card.dragging{opacity:.45}
.ig-ghost{position:fixed;z-index:9998;pointer-events:none;opacity:.92;transform:scale(1.03);box-shadow:0 12px 34px rgba(0,0,0,.35);background:var(--bg-card);border:1px solid var(--accent);border-radius:15px;padding:14px}
.ig-catlab{margin-left:auto;opacity:.75}
/* зеркало в сайдбаре (паттерн Пространства) */
.ig-mirror{display:none;flex-direction:column;gap:2px;margin:2px 0 6px 30px}
.ig-mirror.open{display:flex}
.ig-mrow{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:9px;cursor:pointer;font-size:12.5px;color:var(--text-dim)}
.ig-mrow:hover{background:var(--bg-card);color:var(--text)}
.ig-mico{font-size:13px}
.ig-mname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ig-mdot{width:7px;height:7px;border-radius:50%}
.ig-mdot.ok{background:#3fb96a}.ig-mdot.warn{background:#d9a334}.ig-mdot.off{background:var(--text-dim)}.ig-mdot.err{background:#d9534f}
/* деталь интеграции */
.ig-back{background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:10px;padding:6px 12px;cursor:pointer;font-size:12.5px;margin-bottom:12px}
.ig-back:hover{border-color:var(--accent);color:var(--text)}
.ig-dethead{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.ig-dico{font-size:34px;line-height:1}
.ig-dname{font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px}
.ig-ddesc{color:var(--text-dim);font-size:13px;margin-top:4px;line-height:1.5}
.ig-dmeta{display:flex;gap:14px;font-size:12px;color:var(--text-dim);margin-top:8px;flex-wrap:wrap}
.ig-dmeta a{color:var(--accent);text-decoration:none}
/* строки методов «водой» — полупрозрачные, без тяжёлых таблиц */
.ig-methods{display:flex;flex-direction:column;gap:6px}
.ig-mth{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--bg-card) 55%,transparent);border:1px solid color-mix(in srgb,var(--border) 60%,transparent);font-size:12.5px;color:var(--text-dim)}
.ig-mth.can{cursor:pointer}
.ig-mth.can:hover{border-color:var(--accent);background:var(--bg-card);color:var(--text)}
.ig-mgrp{min-width:64px;font-size:11px;opacity:.8}
.ig-mkey{color:var(--accent);white-space:nowrap}
.ig-mdoc{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ig-msec{font-size:10.5px;border:1px solid #d9a33455;color:#d9a334;border-radius:999px;padding:1px 8px}
.ig-mact{font-size:11.5px;white-space:nowrap;opacity:.85}
.ig-mth.can .ig-mact{color:var(--accent)}
/* окно метода: вода — blur-подложка + полупрозрачная панель */
.ig-ov{position:fixed;inset:0;z-index:9999;background:rgba(10,12,16,.45);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:20px}
.ig-panel{width:100%;max-width:720px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;border-radius:18px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--bg-card) 84%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 24px 70px rgba(0,0,0,.45)}
.ig-p-head{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}
.ig-p-title{font-size:14px;font-weight:600}
.ig-p-title code{color:var(--accent);font-size:.9em}
.ig-p-doc{font-size:11.5px;color:var(--text-dim);margin-top:3px;line-height:1.45}
.ig-p-x{background:transparent;border:none;color:var(--text-dim);font-size:22px;cursor:pointer;line-height:1;padding:0 4px}
.ig-p-form{padding:14px 18px;display:flex;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.ig-f-lab{display:block;font-size:12px;color:var(--text-dim);margin-bottom:5px}
.ig-f-req{color:#d9534f;font-style:normal;margin-left:3px}
.ig-f-in{width:100%;box-sizing:border-box;background:color-mix(in srgb,var(--bg) 60%,transparent);border:1px solid var(--border);border-radius:10px;padding:9px 12px;color:var(--text);font-size:13px;outline:none}
.ig-f-in:focus{border-color:var(--accent)}
.ig-f-hint{font-size:11px;color:var(--text-dim);margin-top:4px;line-height:1.4}
.ig-f-act{display:flex;justify-content:flex-end}
.ig-p-go{background:var(--accent);color:#fff;border:none;border-radius:11px;padding:9px 20px;font-size:13px;cursor:pointer}
.ig-p-go:disabled{opacity:.6;cursor:default}
.ig-p-out{padding:0 18px 16px;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:none}
.ig-p-out::-webkit-scrollbar{display:none}
/* секции ответа (порт method-modal донора) */
.ig-sec{border:1px solid color-mix(in srgb,var(--border) 60%,transparent);border-radius:12px;margin-top:12px;overflow:hidden}
.ig-sec-t{padding:9px 13px;font-size:12.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:7px;background:color-mix(in srgb,var(--bg-card) 60%,transparent)}
.ig-sec-ch{transition:transform .15s;font-size:11px}
.ig-sec.collapsed .ig-sec-ch{transform:rotate(-90deg)}
.ig-sec.collapsed .ig-sec-c{display:none}
.ig-sec-c{padding:10px 13px}
.ig-s-row{display:flex;gap:12px;padding:3px 0;font-size:12.5px}
.ig-s-lab{min-width:170px;color:var(--text-dim)}
.ig-s-val{flex:1;word-break:break-word;white-space:pre-wrap}
.ig-s-val.empty{color:var(--text-dim)}
.ig-s-item{border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent);padding:7px 0}
.ig-s-item:last-child{border-bottom:none}
.ig-json{font-size:11px;line-height:1.5;overflow-x:auto;margin:0;color:var(--text-dim);scrollbar-width:none}
.ig-json::-webkit-scrollbar{display:none}
.ig-s-empty{font-size:12.5px;color:var(--text-dim);padding:6px 0}
.ig-s-text{font-size:12.5px}

/* ═══ M-SITE-INTEGRA-POLISH-04 · IG-AIR: воздух и голограмма (слово CEO 22.07)
   Переопределения IG-VITRINA/IG-DESK — позже в каскаде, селекторы те же. ═══ */
/* обёртка: воздух и мягкая подсветка зоны интеграций (глобальный фон зоны не трогаем) */
.ig-wrap{padding:10px 6px;max-width:1080px}
.ig-hd{font-weight:600;letter-spacing:.2px}
.ig-sub{margin-bottom:20px}
/* плашки грида: голограмма — прозрачный слой + blur + свечение вместо жёсткой коробки */
.ig-grid{gap:14px}
.ig-card{background:color-mix(in srgb,var(--bg-card) 42%,transparent);
  border:1px solid color-mix(in srgb,var(--border) 55%,transparent);
  backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset;
  transition:border-color .18s,background .18s,box-shadow .18s}
.ig-card:hover{background:color-mix(in srgb,var(--bg-card) 58%,transparent);
  border-color:color-mix(in srgb,var(--accent) 45%,transparent);
  box-shadow:0 0 22px color-mix(in srgb,var(--accent) 14%,transparent)}
/* бейдж статуса: свечение вместо рамки-пилюли */
.ig-badge{border:none;background:color-mix(in srgb,currentColor 12%,transparent)}
/* деталь: шапка легче */
.ig-dico{opacity:.95}
.ig-ddesc{max-width:640px}
/* строки методов: НЕ коробки — порхающие строки с тонкой чертой и свечением на hover */
.ig-methods{gap:0}
.ig-mth{background:transparent;border:none;
  border-bottom:1px solid color-mix(in srgb,var(--border) 35%,transparent);
  border-radius:0;padding:11px 10px;transition:background .16s,padding-left .16s}
.ig-mth:last-child{border-bottom:none}
.ig-mth.can:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 9%,transparent),transparent 70%);
  border-color:color-mix(in srgb,var(--accent) 30%,transparent);padding-left:16px;color:var(--text)}
.ig-mdoc{white-space:normal;line-height:1.45;font-size:13px}
.ig-msec{border:none;background:color-mix(in srgb,#d9a334 14%,transparent)}
.ig-mact{opacity:0;transition:opacity .16s}
.ig-mth.can:hover .ig-mact{opacity:1}
.ig-mth:not(.can) .ig-mact{opacity:.45;font-size:10.5px}
/* окно метода: больше воды */
.ig-ov{background:rgba(8,10,14,.34);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ig-panel{background:color-mix(in srgb,var(--bg-card) 68%,transparent);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-color:color-mix(in srgb,var(--border) 55%,transparent);
  box-shadow:0 30px 90px rgba(0,0,0,.35),0 0 40px color-mix(in srgb,var(--accent) 6%,transparent)}
.ig-p-doc{font-family:monospace;font-size:10.5px;opacity:.55}
.ig-f-in{background:color-mix(in srgb,var(--bg) 38%,transparent);
  border-color:color-mix(in srgb,var(--border) 60%,transparent)}
.ig-f-in:focus{box-shadow:0 0 14px color-mix(in srgb,var(--accent) 16%,transparent)}
/* секции ответа: мягче */
.ig-sec{border-color:color-mix(in srgb,var(--border) 45%,transparent)}
.ig-sec-t{background:color-mix(in srgb,var(--bg-card) 40%,transparent)}
/* зеркало: чуть воздушнее */
.ig-mrow{padding:6px 9px}
.ig-mrow:hover{background:color-mix(in srgb,var(--bg-card) 60%,transparent)}

/* ═══ M-SITE-INTEGRA-POLISH-05 · IG-AIR2: без черты, шрифт как в чате (CEO 22.07) ═══ */
/* строки методов: черту-подчёркивание убираем совсем — воздух держат отступы и hover */
.ig-mth{border-bottom:none}
/* шрифт слоя интеграций: притушить до однородного чатового тона, без фар */
.ig-hd{color:color-mix(in srgb,var(--text) 86%,transparent)}
.ig-name,.ig-dname{color:color-mix(in srgb,var(--text) 84%,transparent);font-weight:600}
.ig-mdoc{color:color-mix(in srgb,var(--text) 68%,transparent)}
.ig-mth.can:hover{color:inherit}
.ig-mth.can:hover .ig-mdoc{color:color-mix(in srgb,var(--text) 80%,transparent)}
.ig-mkeyless{}
.ig-s-val{color:color-mix(in srgb,var(--text) 78%,transparent)}
.ig-p-title{color:color-mix(in srgb,var(--text) 84%,transparent)}
.ig-desc,.ig-ddesc,.ig-sub{color:color-mix(in srgb,var(--text) 52%,transparent)}

/* ═══ M-INTEGRA-RENDER-POLISH-01 · читаемая выдача интеграций (слово CEO 31.07)
   Мета/сырой JSON — за «Подробно»; карточные строки — воздух и вес значений.
   Селекторы с контекстным весом (0,2,0) — переопределяют базу IG-DESK ниже
   по каскаду по канону CSS-грабли №6. Скроллбары скрыты по канону. ═══ */
.ig-sec-c .ig-json{max-height:260px;overflow:auto;scrollbar-width:none}
.ig-sec-c .ig-json::-webkit-scrollbar{display:none}
.ig-sec.ig-sec-json .ig-sec-t{color:var(--text-dim);font-weight:500}
.ig-sec .ig-sec-t:hover{background:color-mix(in srgb,var(--bg-card) 85%,transparent)}
.ig-sec .ig-s-row{padding:5px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 22%,transparent)}
.ig-sec .ig-s-row:last-child{border-bottom:none}
.ig-sec .ig-s-val{font-weight:500}
.ig-sec .ig-s-lab{font-size:12px}

/* ═══ M-INTEGRA-RENDER-POLISH-02 · тетрадное чтение результата + «В чат»
   (слово CEO 31.07: «показать как в тетради — удобно пролистать; в чат нужно»)
   Контекстный вес по канону CSS-грабли №6; скроллбары скрыты по канону. ═══ */
/* зона результата: пролистываемая тетрадь */
.ig-panel .ig-p-out{max-height:56vh;overflow-y:auto;scrollbar-width:none;
  padding-right:2px}
.ig-panel .ig-p-out::-webkit-scrollbar{display:none}
/* панель действий над результатом */
.ig-p-out .ig-out-act{display:flex;justify-content:flex-end;gap:8px;
  margin:10px 0 2px;position:sticky;top:0;z-index:2}
.ig-p-out .ig-out-chat{font-size:12px;padding:6px 12px;border-radius:9px;
  border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);
  background:color-mix(in srgb,var(--bg-card) 70%,transparent);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}
.ig-p-out .ig-out-chat:hover{border-color:var(--accent);
  background:color-mix(in srgb,var(--accent) 12%,transparent)}
/* тетрадная типографика записей */
.ig-p-out .ig-sec-c{padding:12px 15px}
.ig-p-out .ig-s-row{font-size:13px;line-height:1.65;padding:6px 0}
.ig-p-out .ig-s-lab{min-width:150px;font-weight:400}
.ig-p-out .ig-s-val{font-weight:500;letter-spacing:.1px}
.ig-p-out .ig-s-item{padding:10px 0}
.ig-p-out .ig-s-text{font-size:13px;line-height:1.7;white-space:pre-wrap}

/* ═══ M-SITE-MODAL-PREMIUM-03 · премиум-модалка метода (слово CEO 31.07:
   «лагает промотка, обрезает края справа»)
   Диагноз: (1) двойной backdrop-filter (подложка blur10 + панель blur20) —
   пересчёт фильтра панели на каждый кадр скролла; (2) POLISH-02 перекрыл
   базовый padding .ig-p-out своим padding-right:2px — контент резался
   скруглением; (3) max-height:56vh городил второй скролл внутри панели 88vh.
   Лечение: blur остаётся ТОЛЬКО на статичной подложке; панель — плотное
   стекло без фильтра; поля возвращены; один скролл; композитный слой.
   Селекторы позже в каскаде — переопределяют по канону. ═══ */
.ig-ov{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.ig-panel{backdrop-filter:none;-webkit-backdrop-filter:none;
  background:color-mix(in srgb,var(--bg-card) 96%,transparent)}
.ig-panel .ig-p-out{max-height:none;padding:0 18px 18px;
  overscroll-behavior:contain;transform:translateZ(0)}
.ig-p-out .ig-out-act{padding:10px 0 8px;margin:0 0 2px;
  background:linear-gradient(color-mix(in srgb,var(--bg-card) 96%,transparent) 72%,transparent)}
/* длинные значения не упираются в правый край */
.ig-p-out .ig-s-val{padding-right:2px}
/* мобила: панель во весь экран, без ужимания краёв */
@media (max-width:600px){
  .ig-ov{padding:0;align-items:stretch}
  .ig-panel{max-width:none;max-height:100dvh;height:100dvh;border-radius:0;border-left:none;border-right:none}
  .ig-p-out .ig-s-lab{min-width:112px}
}

/* ═══ M-SITE-METHOD-UX-04 · служебка при выдаче + светлая тема + панель действий
   (слово CEO 31.07: «Enter не жмётся; в светлой пропадает Найти; инфа внизу»)
   Селекторы позже в каскаде — переопределяют по канону. ═══ */
/* при выдаче форма спрятана — результат с самого верха */
.ig-panel.ig-done .ig-p-form{display:none}
.ig-panel.ig-done .ig-p-out{padding-top:2px}
/* панель действий: «Изменить запрос» слева, «В чат» справа */
.ig-p-out .ig-out-act{justify-content:space-between}
.ig-p-out .ig-out-edit{font-size:12px;padding:6px 12px;border-radius:9px;
  border:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  background:transparent;color:var(--text-dim);cursor:pointer;
  transition:color .15s,border-color .15s}
.ig-p-out .ig-out-edit:hover{color:var(--text);border-color:var(--border)}
/* светлая тема: текст на акцентной кнопке был белым по светлому — контраст */
:root[data-theme="light"] .ig-p-go,:root[data-theme="mist"] .ig-p-go{color:#20222a}
:root[data-theme="light"] .ig-p-out .ig-out-chat,:root[data-theme="mist"] .ig-p-out .ig-out-chat{color:#20222a}
:root[data-theme="light"] .ig-p-out .ig-out-act,:root[data-theme="mist"] .ig-p-out .ig-out-act{background:linear-gradient(color-mix(in srgb,var(--bg-card) 96%,transparent) 72%,transparent)}

/* ═══ M-LEGAL-DESK-01 · КАБИНЕТ ОТДЕЛА (мост отдел→зона, ADR-LEGAL-DESK-01) ═══
   Строгое корпоративное лицо против бытовых пилюль Пространства (Р4-дух).
   Цвета — токены темы: обе темы едут сами, руками ничего не красим.
   01B (слово CEO 31.07 v3): табличка ПАРИТ — пилюля развёрнута, рамка/подложка
   сняты; высота шрифта = высота эмодзи, оба чуть выше; приглушённость осталась.
   Живёт только на корне кабинета. */
.cb-wrap{padding:10px 8px 6px;max-width:1080px}
.cb-plaque{display:flex;align-items:center;gap:10px;margin:6px 2px 8px;min-width:0;flex-wrap:wrap}
.cb-plaque-emo{font-size:19px;line-height:1}
.cb-plaque-t{font-size:19px;line-height:1;font-weight:600;letter-spacing:.3px;color:var(--text);opacity:.72}
.cb-sub{color:var(--text-dim);font-size:13px;margin:0 2px 18px}
.cb-crumb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px;margin:-6px 0 12px}
.cb-crumb-root,.cb-crumb-part{cursor:pointer;color:var(--text-dim)}
.cb-crumb-root:hover,.cb-crumb-part:hover{color:var(--accent)}
.cb-crumb-part:last-child{color:inherit;cursor:default}
.cb-crumb-sep{color:var(--text-dim);opacity:.6}
.cb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.cb-card{background:var(--bg-card);border:1px solid var(--border);border-radius:13px;padding:13px 14px;cursor:pointer;transition:border-color .15s}
.cb-card:hover{border-color:var(--accent)}
.cb-card-hd{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.cb-card-hd svg{width:18px;height:18px;flex:none;opacity:.85}
.cb-card-hd b{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cb-card-meta{font-size:12px;color:var(--text-dim)}
.cb-empty{color:var(--text-dim);font-size:13px;padding:10px 0}
.cb-error{color:#d9534f;border:1px solid #d9534f55;border-radius:12px;padding:12px 14px;font-size:13px}
.cb-back{background:none;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-size:13px;padding:6px 14px;cursor:pointer;margin-bottom:14px;transition:border-color .15s,color .15s}
.cb-back:hover{border-color:var(--accent);color:var(--accent)}
.cb-reader-hd{font-size:17px;font-weight:700;margin-bottom:2px}
.cb-reader-meta{font-size:12px;color:var(--text-dim);margin-bottom:14px}
.cb-reader-body{font-size:14.5px;line-height:1.65;max-width:760px}
.cb-reader-body p{margin:0 0 10px}
.cb-reader-body h1,.cb-reader-body h2,.cb-reader-body h3{margin:16px 0 8px}

/* ═══ M-LEGAL-DESK-02A · процессы + порядок кабинета ═══ */
.cb-plaque .cb-chip{margin-left:12px;font-size:12px;font-weight:600;color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:3px 10px;opacity:.9}
.cb-plaque-actions{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap;margin-left:auto}
.cb-cmd{font-size:12px;font-weight:600;color:var(--text-dim);background:transparent;border:1px solid transparent;border-radius:999px;padding:4px 12px;cursor:pointer;transition:background-color .15s,color .15s;flex:none}
.cb-cmd:hover{background:var(--bg-card);color:var(--text)}
.cb-sec-t{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);margin:16px 2px 9px}
.cb-proc-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))} /* паспорта Р4 шире плиток журнала */
/* ═══ M-LEGAL-DESK-04B: руки человека в кабинете ═══ */
.cb-sec-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cb-sec-row .cb-sec-t{margin-right:auto}
.cb-add{font-size:12px;font-weight:600;color:var(--text-dim);background:transparent;border:1px solid transparent;border-radius:999px;padding:4px 12px;cursor:pointer;transition:background-color .15s,color .15s}
.cb-add:hover{background:var(--bg-card);color:var(--text)}
.cb-pr-tools{margin-left:auto;display:flex;gap:8px;flex:none}
.cb-tool{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-dim);background:none;border:1px solid var(--border);border-radius:999px;padding:4px 11px;cursor:pointer;transition:color .15s,border-color .15s}
.cb-tool:hover{color:var(--accent);border-color:var(--accent)}
.cb-tool svg{width:13px;height:13px}
.cb-editor textarea{width:100%;min-height:320px;resize:vertical;padding:13px 14px;border-radius:13px;border:1px solid var(--border);background:var(--bg-0);color:var(--text);font-size:13.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;outline:none}
.cb-editor textarea:focus{border-color:var(--sel)}
.cb-editor-b{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}
.cb-editor-b .btn{padding:9px 18px}
.cb-editor-err{font-size:12.5px;color:var(--danger);min-height:16px;margin-top:8px}
.cb-reg-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.cb-reg{cursor:default}
.cb-reg-subj{color:var(--text);font-size:13px}

/* M-LEGAL-DESK-06: чипы формата документа */
.km-fmt{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.km-fmt-chip{font-size:12.5px;font-weight:600;border-radius:999px;padding:6px 14px;border:1px solid var(--border);background:var(--bg-0);color:var(--text-dim);cursor:pointer}
.km-fmt-chip.sel{border-color:var(--accent);color:var(--accent)}
.km-fmt-chip.soon{opacity:.5;cursor:default}
/* ═══ M-LEGAL-DESK-03/05 ═══ */
.cb-acts{position:absolute;right:8px;top:8px;display:flex;gap:4px}
.cb-acts .sp-item-act{position:static;opacity:.62}
.cb-acts .sp-item-act:hover{opacity:1}
.cb-card{position:relative}
.cb-sec-row .cb-add+.cb-add{margin-left:6px}
/* M-LEGAL-DESK-05: единый светлый холст сущности (канон sp-reader) — документ,
   карточка процесса и справочник кабинета больше не «парят» по зоне */
.cb-reader{margin-top:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:20px 22px} /* 05A: значения = .sp-reader байт-в-байт */
@media(max-width:560px){.cb-reader{padding:15px 14px;border-radius:15px}}
/* M-LEGAL-DESK-05A: корзина кабинета = БАЗОВЫЙ .sp-trash Пространства (absolute
   в углу рабочей зоны, те же media-правила) — свои правила снесены как велосипед */
.cb-wrap{padding-bottom:64px}
/* плитки кабинета живут в разметке движка (sp-pill) — cb-скин добивается контекстным весом */
.cb-grid .sp-pill{border-radius:13px;padding:13px 14px}
.cb-grid .sp-pill:hover{border-color:var(--accent)}
.cb-proc .cb-card-hd b{flex:1;min-width:0}
.cb-status{font-size:11px;font-weight:600;border-radius:999px;padding:2px 8px;border:1px solid var(--border);color:var(--text-dim);flex:none}
.cb-st-open{color:#3fa46a;border-color:#3fa46a55}
.cb-st-closed{color:var(--text-muted)}
.cb-pr-hd{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;margin:2px 0 4px}
.cb-pr-meta{font-size:12.5px;color:var(--text-dim);margin-bottom:14px}
.cb-pr-list{display:flex;flex-direction:column;gap:6px;max-width:760px}
.cb-pr-row{display:flex;align-items:baseline;gap:10px;border:1px solid var(--border);border-radius:11px;padding:9px 12px;font-size:13px}
.cb-pr-row b{flex:none;font-weight:600}
.cb-pr-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cb-pr-dim{color:var(--text-muted);margin-left:auto;flex:none}
.cb-mirror-sec{font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);padding:6px 10px 2px}

/* ═══ M-LEGAL-DESK-01B · зеркало кабинета в сайдбаре (паттерн sp-mirror) ═══ */
.cb-mirror{display:none;flex-direction:column;gap:1px;margin:2px 0 4px;padding-left:6px}
.cb-mirror.open{display:flex}
.pane-work.wf-collapsed .cb-mirror{display:none} /* в свёрнутом рельсе зеркала нет (канон SPEC §4.2) */
.cb-mirror-row{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:8px;width:100%;text-align:left;
  background:none;border:none;color:var(--text-dim);font-size:13px;cursor:pointer}
.cb-mirror-row:hover{background:var(--bg-card);color:var(--text)}
.cb-mirror-row svg{width:14px;height:14px;flex:0 0 auto;stroke-width:1.7;fill:none;stroke:currentColor;opacity:.85}
.cb-mirror-row b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cb-mirror-empty{color:var(--text-dim);font-size:12.5px;padding:6px 10px;opacity:.8}

/* ── M-VAULT-01A-SITE: подсветка треда при перетаскивании файла ─────────── */
#thread.vault-drop{outline:2px dashed var(--accent,#7aa2ff);outline-offset:-8px;border-radius:14px;}

/* ── M-CONF-FRONT-01b: Конференц-зал (зона wfMain; палитра ТОЛЬКО токены темы;
   пузыри — глобальные .msg/.bubble, тут лишь слой зала) ──────────────────── */
.brd-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.brd-row{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:13px 16px;cursor:pointer;transition:border-color var(--sink)}
.brd-row:hover{border-color:var(--primary)}
.brd-row-t{display:flex;align-items:center;gap:10px;font-size:0.98em}
.brd-row-x{display:flex;gap:14px;margin-top:5px;font-size:12px;color:var(--text-muted)}
.brd-badge{font-size:11px;padding:2px 9px;border-radius:999px;border:1px solid var(--border);color:var(--text-muted)}
.brd-st-active{border-color:var(--primary);color:var(--primary)}
.brd-st-synthesizing{border-color:var(--accent,#7aa2ff);color:var(--accent,#7aa2ff)}
.brd-st-paused{opacity:.75}
.brd-st-closed,.brd-st-archived{opacity:.55}
.brd-empty,.brd-err{color:var(--text-muted);font-size:13px;padding:14px 4px}
.brd-err{color:var(--danger,#e5484d)}
.brd-form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-top:14px;display:flex;flex-direction:column;gap:10px;max-width:560px}
.brd-form-t{font-weight:600}
.brd-form-l{font-size:12.5px;color:var(--text-muted)}
.brd-form-card input,.brd-form-card select{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:9px 12px;color:var(--text);font-size:13.5px}
.brd-parts{display:flex;flex-direction:column;gap:7px}
.brd-part{display:flex;align-items:center;gap:8px;font-size:13.5px}
.brd-part i{font-style:normal;font-size:11px;color:var(--text-dim);margin-left:auto}
.brd-form-row{display:flex;gap:10px}
.brd-form-row>*{flex:1}
.brd-form-b{display:flex;justify-content:flex-end;align-items:center;gap:16px}
.brd-hall{display:flex;flex-direction:column;height:100%;min-height:0}
.brd-head{display:flex;align-items:flex-start;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.brd-head-mid{display:flex;flex-direction:column;gap:7px;min-width:0}
.brd-head-t{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.brd-round{font-size:12px;color:var(--text-muted)}
.brd-conn{width:8px;height:8px;border-radius:50%;background:var(--text-dim);display:inline-block}
.brd-conn.on{background:var(--ok,#3fb96f)}
.brd-conn.off{background:var(--danger,#e5484d)}
.brd-head-p{display:flex;gap:7px;flex-wrap:wrap}
.brd-chip{font-size:11.5px;padding:3px 10px;border-radius:999px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-muted)}
.brd-chip.brd-chair{border-color:var(--primary);color:var(--primary)}
.brd-thread{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:14px 4px;scrollbar-width:none}
.brd-thread::-webkit-scrollbar{display:none}
.brd-msg .brd-text{white-space:pre-wrap}
.brd-msg.brd-summary .bubble{border-left:3px solid var(--primary)}
.brd-msg.brd-synthesis .bubble{border-left:3px solid var(--accent,#7aa2ff)}
.brd-sys{align-self:center;font-size:11.5px;color:var(--text-dim);padding:2px 12px;text-align:center}
.brd-sys.red{color:var(--danger,#e5484d)}
.brd-foot{border-top:1px solid var(--border);padding-top:10px;font-size:12px;color:var(--text-dim)}

/* ── M-CONF-FRONT-01c: пульт председателя ───────────────────────────────── */
.brd-cons-row{display:flex;gap:9px;align-items:flex-end;margin-top:9px}
.brd-cons-row textarea{flex:1;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:9px 12px;color:var(--text);font-size:13.5px;resize:none;scrollbar-width:none}
.brd-cons-row textarea::-webkit-scrollbar{display:none}
.brd-cons-btns{flex-wrap:wrap;align-items:center}
.brd-cons-btns .btn[disabled]{opacity:.45;pointer-events:none}
.brd-busy{font-size:12px;color:var(--primary)}
.brd-cons-done{font-size:12.5px;color:var(--text-muted);padding:4px 0}

/* ── M-CONF-FRONT-01d: стол/аватары/раунды/CONF (каркас на токенах;
   палитра --agent-* доложится по FCT_SPEC_ConferenceRoomDesign) ──────────── */
.brd-chip{display:inline-flex;align-items:center;gap:7px}
.brd-ava{font-style:normal;width:20px;height:20px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:600;color:var(--text-muted)}
.brd-chip.speak{border-color:var(--primary);color:var(--primary)}
.brd-chip.speak .brd-ava{border-color:var(--primary);color:var(--primary)}
.brd-round-sep{display:flex;align-items:center;gap:12px;margin:8px 0;color:var(--text-muted);font-size:11.5px}
.brd-round-sep::before,.brd-round-sep::after{content:'';flex:1;height:1px;background:var(--border)}
.brd-conf{margin-left:auto;font-size:10.5px;padding:1px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-muted)}
.brd-msg .stream-bubble-header{display:flex;align-items:center;gap:8px}
/* Korpus Board Engine B1 polish: доска повторяет полноэкранную геометрию тетради. */
.wf-main.zone-visual-board{padding:2px!important;overflow:hidden;position:relative}
.vb-shell{height:100%;width:100%;min-width:0;min-height:0;display:flex;overflow:hidden}
.vb-shell .vb-frame{box-sizing:border-box;min-width:0;max-width:100%}
.vb-shell .vb-board{min-width:0;max-width:100%;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}
.vb-shell .vb-shelf{height:auto;flex:0 0 auto;min-height:38px;flex-wrap:wrap;gap:8px;padding:6px 10px;box-sizing:border-box}
.vb-shell .vb-tools{flex-wrap:wrap;max-width:100%;row-gap:10px}
.vb-shell .vb-tools button{white-space:nowrap}
.vb-frame{height:100%;width:100%;min-height:0;display:flex;flex-direction:column;padding:5px 5px 0;border:1px solid rgba(255,255,255,.06);border-radius:12px 12px 8px 8px;background:#252a31;box-shadow:inset 0 1px 2px rgba(255,255,255,.08),inset 0 -3px 9px rgba(0,0,0,.32),0 3px 12px rgba(0,0,0,.24)}
.vb-board{position:relative;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid rgba(0,0,0,.42);border-radius:7px 7px 3px 3px;box-shadow:inset 0 2px 16px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.05);transition:background .2s,color .2s}
.vb-board.light-workshop{background:#ecebe7;color:#222}.vb-board.dark-blueprint{background:#12202d;color:#edf7ff}.vb-board.meeting-board{background:#f2eee3;color:#2d2924}
/* Холст держит свой размер: высота задаётся рантаймом по содержимому, а не
   сжимается под контейнер. Пока содержимое помещается — 100%, иначе растёт. */
.vb-board svg{display:block;width:100%;height:100%}
.vb-board svg.vb-tall{height:auto}
.vb-shelf{height:38px;flex:0 0 38px;display:flex;align-items:center;gap:14px;padding:0 10px;border-top:1px solid rgba(255,255,255,.1);background:linear-gradient(#343a43,#272c33);box-shadow:0 -2px 6px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.08)}
.vb-tools{display:flex;align-items:center;gap:13px;min-width:0}.vb-tools button,.vb-tools select{appearance:none;border:0;background:none;padding:3px 0;color:#c9cdd2;font:inherit;font-size:12px;line-height:1;cursor:pointer;opacity:.66}.vb-tools button:hover,.vb-tools select:hover{opacity:1;color:#fff}.vb-tools select{max-width:86px;padding-right:12px;background:linear-gradient(45deg,transparent 50%,currentColor 50%) right 2px center/4px 4px no-repeat}.vb-tools select option{background:#252a31;color:#eee}.vb-status{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aeb4bc;font-size:11.5px;opacity:.7}.vb-status.busy{color:#d5a95f}
.vb-title,.vb-label,.vb-value{fill:currentColor;font-family:Inter,Arial,sans-serif}.vb-title{font-size:30px;font-weight:700}.vb-label{font-size:18px}.vb-value{font-size:18px;font-weight:700}.vb-axis{fill:none;stroke:currentColor;stroke-width:2;opacity:.55}.vb-line{fill:none;stroke:#d39a45;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1500;stroke-dashoffset:1500;animation:vbDraw 1.3s ease forwards}.vb-dot{fill:#d39a45;animation:vbPop .28s ease both}.vb-bar{fill:#d39a45;transform-box:fill-box;transform-origin:center bottom;animation:vbGrow .55s ease both}.vb-bar.low{fill:#dc4c4c}.dark-blueprint .vb-line,.dark-blueprint .vb-dot,.dark-blueprint .vb-bar{stroke:#55d6be;fill:#55d6be}.dark-blueprint .vb-bar.low{fill:#ff5d67}.vb-style-handwriting{font-family:'Caveat','Segoe Print','Trebuchet MS',sans-serif;font-style:normal;font-weight:500}.vb-style-marker{font-family:'Caveat','Segoe Print','Trebuchet MS',sans-serif;font-weight:600}.vb-style-serif{font-family:Georgia,'Times New Roman',serif}.vb-style-sans{font-family:Inter,Arial,sans-serif}.vb-size-small{font-size:28px}.vb-size-medium{font-size:38px}.vb-size-large{font-size:52px}.vb-size-hero{font-size:68px}
@keyframes vbDraw{to{stroke-dashoffset:0}}@keyframes vbGrow{from{transform:scaleY(0);opacity:.3}to{transform:scaleY(1);opacity:1}}@keyframes vbPop{from{transform:scale(0)}to{transform:scale(1)}}
@media(max-width:900px){.vb-frame{padding:3px 3px 0}.vb-shelf{height:36px;flex-basis:36px;padding:0 8px}.vb-tools{gap:9px}.vb-tools button,.vb-tools select{font-size:11px}.vb-status{display:none}.vb-title{font-size:24px}}

/* M-LIFE-QUIET-UI-01: единый ненавязчивый язык выпадающих списков. */
:is(.model-dd,.wallet-dd,.profile-dd,.nav-dd,.cs-dd,.chief-dd,.tariff-dd,.store-dd){
  background:color-mix(in srgb,var(--bg-card) 78%,transparent)!important;
  border-color:color-mix(in srgb,var(--border) 68%,transparent)!important;
  box-shadow:0 14px 38px rgba(0,0,0,.22)!important;
  backdrop-filter:blur(18px) saturate(.9);-webkit-backdrop-filter:blur(18px) saturate(.9)
}
:is(.model-dd,.chief-dd,.tariff-dd) .md-item,
.profile-dd .pf-item,.nav-dd .nd-item,.cs-dd .cs-item{transition:none!important}
:is(.model-dd,.chief-dd,.tariff-dd) .md-item:hover,
.profile-dd .pf-item:hover,.nav-dd .nd-item:hover,.cs-dd .cs-item:hover{
  background:rgba(255,255,255,.045)!important;color:var(--text)!important
}
:is(.model-dd,.chief-dd,.tariff-dd) .md-item.active{background:transparent!important}
:is(.model-dd,.chief-dd,.tariff-dd) .md-item .md-check{color:var(--text-muted)!important}
.sp-mirror-row.active{background:rgba(255,255,255,.04)!important;color:var(--text)!important;font-weight:500}
.sp-mirror-row:hover{background:rgba(255,255,255,.035)!important}
.wf-nav .nav-item.active{background:rgba(255,255,255,.045)!important;color:var(--text)!important;font-weight:500}
#vbMirror .sp-mirror-row{border-radius:0;background:transparent!important;padding-top:6px;padding-bottom:6px}
#vbMirror .sp-mirror-row.active{color:var(--text)!important;font-weight:500}
.chief-pick{padding:2px 0;margin:-2px 0;border-radius:0}
.chief-pick:hover{background:none;color:var(--text)}

/* Хранитель работает: тихий пульс под печатью, независимый от положения пузыря. */
.chief-mark{position:relative;display:inline-grid;place-items:center;min-width:22px;align-self:stretch}
.keeper-pulse{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);display:none;gap:2px}
.keeper-pulse.on{display:flex}.keeper-pulse i{width:3px;height:3px;border-radius:50%;background:var(--text-muted);animation:keeperBreath 1.2s ease-in-out infinite}
.keeper-pulse i:nth-child(2){animation-delay:.16s}.keeper-pulse i:nth-child(3){animation-delay:.32s}
@keyframes keeperBreath{0%,70%,100%{opacity:.2;transform:translateY(0)}35%{opacity:.9;transform:translateY(-2px)}}
.chat-rail-strip .r-btn.loop-on{color:var(--text)}.chat-rail-strip .r-btn.loop-on::after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--success);margin:29px 0 0 27px;animation:keeperBreath 1.2s infinite}
.rail-strip .r-btn{position:relative}

/* Гостевая строка показывается при входе и мягко освобождает поверхность. */
.guest-bar{transition:opacity .24s ease,max-height .24s ease,padding .24s ease;border-color .24s ease;max-height:56px}
.guest-bar.folded{opacity:0;max-height:0;padding-top:0;padding-bottom:0;border:0;overflow:hidden;pointer-events:none}
.guest-bar .gb-close{width:26px;height:26px;border:0;background:none;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;border-radius:50%}
.guest-bar .gb-close:hover{color:var(--text)}
@media(max-width:560px){.guest-bar{max-height:120px}}
.landscape-full{display:grid;flex:0 0 34px;width:34px;height:34px}
@media(max-width:820px) and (orientation:portrait){
  .topbar>#corpusFullscreen{display:grid;order:3;width:34px;height:34px;flex:0 0 34px;border-radius:9px}
  .topbar>#corpusFullscreen svg{width:18px;height:18px}.topbar>#navBurger{order:4}
}

/* M-SITE-FRONT-MOBILE-LANDSCAPE-23: широкий телефон — компактный desktop-like
   shell. Это отдельное состояние только для coarse pointer и малой высоты:
   ноутбук при узком окне не затрагиваем. До авто-схлопывания гостевая строка
   остаётся однострочной; футер уступает высоту рабочей поверхности. */
@media (orientation:landscape) and (max-width:920px) and (max-height:500px) and (pointer:coarse){
  :root{--topbar-h:40px;--foot-h:0px;--chat-w:260px;--wf-w:218px}
  html,body{width:100%;max-width:100%;overflow:hidden}
  .topbar{max-width:100%;overflow:visible;padding-left:max(3px,env(safe-area-inset-left,0px));padding-right:max(5px,env(safe-area-inset-right,0px));gap:7px;border-radius:0}
  .brand{gap:6px;margin-left:-5px}.brand .mark{width:27px;height:27px}.brand-name{gap:3px}
  .topbar .icon-btn{width:30px;height:30px;border-radius:8px}.topbar .icon-btn svg{width:17px;height:17px}
  .topbar .usage{gap:7px;margin-left:1px}.topbar .u-sep{margin:0 1px}
  .topbar .usage #uSessBtn{display:flex}
  .topbar .usage #uStoreBtn,.topbar .usage .u-sep:has(+ #uStoreBtn){display:none}
  .site-foot{display:none}
  .guest-bar{display:none!important}
  .landscape-full{display:grid;flex:0 0 30px;width:30px;height:30px}
  .stage{height:calc(100dvh - var(--topbar-h))}
  body.has-guest-bar .stage{height:calc(100dvh - var(--topbar-h))}
  .wf-main{padding:12px 14px}
  .wf-side .head{padding:7px 8px 6px}.wf-side .th-line{gap:6px;min-height:30px}
  .chat-head{gap:7px;padding:6px 8px}.chat-head .h-btn{width:29px;height:29px;border-radius:8px}.chat-head .h-btn svg{width:16px;height:16px}
  .composer{padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))}
  .composer .wrap{gap:4px;border-radius:13px;padding:3px 6px}.composer .cbtn{width:27px;height:27px;border-radius:8px}
  .composer textarea{line-height:1.35;padding:1px 2px;max-height:150px}
  :is(.model-dd,.wallet-dd,.profile-dd,.store-dd,.cs-dd,.nav-dd,.chief-dd){max-width:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 16px)!important;max-height:calc(100dvh - 52px)!important;overflow:auto}
  .topbar>.profile-dd{width:min(292px,calc(100vw - 12px));min-width:0;overscroll-behavior:contain;scrollbar-width:none}
  .topbar>.usage>.model-dd{width:min(300px,calc(100vw - 12px))!important;min-width:0!important;max-width:300px!important}
  .topbar>.usage>.wallet-dd{width:min(320px,calc(100vw - 12px))!important;min-width:0!important;max-width:320px!important}
  .topbar>.usage>.sess-dd{width:min(330px,calc(100vw - 12px))!important;min-width:0!important;max-width:330px!important}
  /* Одна поверхность прокрутки: фиксированная внутренняя .wd-hist раньше
     перехватывала свайп и не позволяла домотать родительскую панель до ходов. */
  .topbar>.usage>.sess-dd{overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
  .topbar>.usage>.sess-dd .wd-hist{height:auto;max-height:none;overflow:visible}
  .topbar>.nav-dd,.topbar>.cs-dd{top:43px;width:min(264px,calc(100vw - 12px));min-width:0}
  .divider::before{left:-18px;width:36px}.wf-resizer{right:-18px;width:36px;background:transparent;touch-action:none}.wf-resizer::after{inset:0 17px}
  .divider,.wf-resizer{touch-action:none}.divider.armed::before,.wf-resizer.armed::before{content:'↔';position:absolute;z-index:3;left:50%;top:50%;width:34px;height:30px;transform:translate(-50%,-50%);display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:10px;background:color-mix(in srgb,var(--bg-card) 90%,transparent);color:var(--text);font-size:16px;line-height:1;box-shadow:0 8px 22px rgba(0,0,0,.28);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .divider.armed::after,.wf-resizer.armed::after{background:var(--sel)}
  .vb-shelf{height:30px;flex-basis:30px;padding:0 6px;gap:5px}
  .vb-tools{gap:6px}.vb-tools>button,.vb-theme>button{font-size:10.5px}
  .vb-icon{width:23px;height:23px}.vb-icon svg{width:14px;height:14px}
}
@media (orientation:landscape) and (max-width:700px) and (max-height:500px) and (pointer:coarse){
  .topbar{gap:5px}
  .brand-product{display:none}
  .topbar .usage{gap:8px}
}

/* Сайдбар: при сворачивании остаётся круглая сущность гостя/пространства. */
.th-avatar{display:grid;width:32px;height:32px;flex:0 0 32px;border-radius:50%;place-items:center;background:var(--bg-card);border:1px solid var(--border);color:var(--text);font-size:12px;font-weight:650;padding:0;cursor:pointer}
.th-tenant[role="button"]{cursor:pointer}.th-tenant[role="button"]:hover{color:var(--text-2)}
#uAvatarBtn:hover,#uAvatarBtn:focus,#uAvatarBtn:focus-visible{border-color:var(--border)!important;outline:none!important;box-shadow:none!important}
.profile-dd .pf-head{gap:8px;padding-top:6px;padding-bottom:5px}.profile-dd .pf-head .av{width:32px;height:32px;font-size:12px}.profile-dd .pf-head .nm{font-size:12.5px}.profile-dd .pf-head .em{font-size:10.5px}
.model-dd .md-item{align-items:center}.model-dd .md-item b{white-space:nowrap}.model-dd .model-code{color:var(--text-muted);font-weight:400}
.wallet-dd .wd-note{overflow-wrap:anywhere;line-height:1.3}
#vbLine,#vbBar{display:none!important}
@container chatbar (max-width:230px){
  #chatChiefBtn #chatChiefLabel{display:none}.chat-head{gap:4px;padding-left:6px;padding-right:6px}.chief-pick{gap:3px}
}
.pane-work.wf-collapsed .wf-side .head{padding:12px 0}.pane-work.wf-collapsed .th-line{justify-content:center}
.pane-work.wf-collapsed :is(.th-tenant,.th-sep,.th-tariff){display:none}

/* Доска: поверхность утоплена, рамка и тонкая полка выступают наружу. */
.vb-frame{padding:6px 6px 0;background:linear-gradient(145deg,#343a42,#22272d);border-color:rgba(255,255,255,.11);box-shadow:inset 0 1px rgba(255,255,255,.14),0 4px 14px rgba(0,0,0,.28)}
.vb-board{border-color:rgba(0,0,0,.6);box-shadow:inset 0 7px 22px rgba(0,0,0,.3),inset 0 0 0 2px rgba(0,0,0,.17),0 -1px rgba(255,255,255,.08)}
.vb-shelf{height:34px;flex-basis:34px;padding:0 9px;gap:8px;overflow:visible;background:linear-gradient(#383e46,#272c32);box-shadow:0 -3px 7px rgba(0,0,0,.31),0 3px 7px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.1)}
.vb-tools{gap:11px}.vb-tools>button,.vb-theme>button{border:0;background:none;padding:2px 0;color:#c8cdd2;font:inherit;font-size:11.5px;cursor:pointer;opacity:.68;transition:none}
.vb-tools>button:hover,.vb-theme>button:hover{opacity:1;color:#fff}
.vb-theme{position:relative}.vb-theme>button span{margin-left:4px;opacity:.7}
.vb-theme-dd{position:absolute;left:-8px;bottom:calc(100% + 8px);z-index:8;display:none;min-width:118px;padding:5px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:rgba(31,36,42,.78);box-shadow:0 12px 28px rgba(0,0,0,.28);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.vb-theme>button{display:inline-flex;align-items:center;gap:3px}.vb-theme-chev{display:inline-block;margin:0!important;font-size:13px;line-height:1;transform:translateY(4px)}
.vb-theme-dd.open{display:flex;flex-direction:column}.vb-theme-dd button{display:flex;align-items:center;gap:7px;border:0;background:none;color:#d4d7da;text-align:left;padding:7px 9px;border-radius:7px;font:inherit;font-size:11.5px;cursor:pointer}.vb-theme-dd button:hover{background:rgba(255,255,255,.055);color:#fff}.vb-theme-check{width:12px;opacity:0;color:#d8dcdf}.vb-theme-dd button.active .vb-theme-check{opacity:1}
.vb-status{font-size:11px}.vb-icon{width:26px;height:26px;display:grid;place-items:center;border:0;background:none;color:#b9bec4;opacity:.62;cursor:pointer;border-radius:7px}.vb-icon:hover,.vb-icon.active{opacity:1;color:#fff;background:rgba(255,255,255,.05)}.vb-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}

/* Узкая рабочая зона возникает и от маленького viewport, и после раскрытия
   сайдбара. Ориентируемся на реальную ширину поверхности, а не всего окна. */
@container workzone (max-width:460px){
  .wf-h{align-items:flex-start;gap:8px;margin-bottom:12px}.wf-h h1{font-size:1.15em}.wf-h p{font-size:.76em}
  .wf-actions{gap:5px;flex-wrap:wrap;justify-content:flex-end}.wf-actions .btn{padding:6px 8px;gap:4px;font-size:11px;border-radius:8px}
  .sp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.sp-pill{min-width:0;padding:9px 10px;border-radius:11px}.sp-pill.has-actions{padding-right:38px}.sp-pill .sp-emo{font-size:16px;margin-bottom:4px}.sp-pill .sp-nm{font-size:.82em}.sp-pill .sp-sub{font-size:.66em}.sp-item-act{width:28px;height:28px;right:5px;top:5px}
  .cb-wrap{max-width:none;padding:4px 0 58px}.cb-plaque{gap:7px;margin:2px 0 6px}.cb-plaque-emo{font-size:16px}.cb-plaque-t{font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cb-plaque .cb-chip{order:3;margin-left:0;padding:3px 8px}.cb-plaque-actions{order:4;width:100%;margin-left:0;gap:6px}.cb-cmd,.lgate-btn{padding:4px 9px!important;font-size:11px!important}.cb-sub{font-size:11.5px;margin:0 0 10px}.cb-sec-row{gap:6px;flex-wrap:wrap}.cb-sec-t{margin-top:10px;margin-bottom:7px}.cb-add{padding:4px 9px;font-size:11px}.cb-grid,.cb-proc-grid,.cb-reg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.cb-grid .sp-pill{min-width:0;padding:9px 10px;border-radius:11px}.cb-card-hd{gap:6px;margin-bottom:5px}.cb-card-hd svg{width:15px;height:15px}.cb-card-hd b{font-size:12px}.cb-card-meta{font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cb-status{font-size:9.5px;padding:2px 5px}.cb-reader{margin-top:10px;padding:13px 12px}.cb-reader-body{font-size:13px}.cb-pr-row{padding:7px 8px;gap:6px;font-size:11.5px}.cb-pr-tools{gap:5px;flex-wrap:wrap}.cb-tool{padding:4px 8px;font-size:10.5px}.cb-crumb{font-size:11.5px;margin:0 0 9px}
  .vb-shelf{padding-left:6px!important;padding-right:4px!important;gap:4px!important}.vb-tools{display:contents}.vb-tools #vbLine,.vb-tools #vbBar{display:none}.vb-tools #vbThemeBtn{order:1}.vb-tools #vbImport{order:2}.vb-tools #vbExport{order:3}.vb-status{order:4}.vb-tools #vbSave{order:10;margin-left:auto;font-size:0;width:24px;height:24px;position:relative}.vb-tools #vbSave::after{content:'✓';font-size:14px}.vb-shelf #vbCopy{order:11}.vb-shelf #vbFocus{order:12}
}
@container workzone (max-width:239px){
  .wf-h{display:block}.wf-actions{justify-content:flex-start;margin-top:7px}.wf-actions .cb-cmd{display:none}.sp-grid{grid-template-columns:1fr}
  .vb-theme>button{max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vb-tools #vbImport,.vb-tools #vbExport{font-size:0;width:22px;height:22px}.vb-tools #vbImport::after{content:'↥';font-size:15px}.vb-tools #vbExport::after{content:'↧';font-size:15px}.vb-icon{width:22px;height:22px}.vb-status{display:none!important}
  .cb-grid,.cb-proc-grid,.cb-reg-grid{grid-template-columns:1fr}.cb-plaque-t{max-width:calc(100% - 26px)}.cb-plaque .cb-chip{margin-left:0}.cb-plaque-actions{gap:5px}.cb-pr-row{align-items:flex-start;flex-wrap:wrap}.cb-pr-dim{margin-left:0;width:100%}
}

/* Учебный режим: доска главная, служебный chrome и футер исчезают.
   Сам .topbar нельзя гасить через display:none: внутри него живут вынесенные
   top-level dropdown отдела и персоны. Оставляем нулевой overlay-host, а весь
   видимый chrome скрываем прямыми детьми. */
body.board-focus :is(.guest-bar,.site-foot){display:none!important}
body.board-focus .topbar{display:block!important;position:fixed;left:0;top:0;width:0;height:0;min-height:0;padding:0;border:0;background:transparent;overflow:visible;z-index:95}
body.board-focus .topbar>:not(#chatDeptDd):not(#chatPersonaDd){display:none!important}
body.board-focus .stage{height:100dvh!important}
body.board-focus .wf-side,body.board-focus .wf-resizer{display:none!important}
body.board-focus .pane-work{flex:1 1 auto!important}
body.board-focus .wf-main.zone-visual-board{padding:2px!important}
body.board-focus .pane-chat{flex:0 0 var(--rail-w)!important}
body.board-focus .chat-body,body.board-focus .divider{display:none!important}
body.board-focus .chat-rail-strip{display:flex!important}
body.board-focus.focus-chat-open .pane-chat{flex:0 0 var(--chat-w)!important;max-width:min(42vw,680px)}
body.board-focus.focus-chat-open .chat-body{display:flex!important}
body.board-focus.focus-chat-open .divider{display:block!important}
body.board-focus.focus-chat-open .chat-rail-strip{display:none!important}
/* Полноэкранный чат сильнее учебной раскладки Доски: никакого наложения.
   Снятие work-rail возвращает прежнее board-focus + focus-chat-open состояние. */
body.board-focus .stage.work-rail .pane-work{display:none!important}
body.board-focus .stage.work-rail .pane-chat{flex:1 1 100%!important;max-width:none!important}
body.board-focus .stage.work-rail .chat-body{display:flex!important}
body.board-focus .stage.work-rail :is(.divider,.chat-rail-strip){display:none!important}

/* M-SITE-MOBILE-FINAL-POLISH-31: правая группа полки и компактные панели. */
.vb-shelf .vb-status{margin-left:0}
.vb-shelf #vbCopy{margin-left:auto;flex:0 0 auto}
.vb-shelf #vbFocus{flex:0 0 auto}

@media(max-width:820px) and (orientation:portrait){
  .topbar>.profile-dd{width:min(292px,calc(100vw - 40px));min-width:min(240px,calc(100vw - 40px));max-width:calc(100vw - 40px)!important}
  .topbar>.usage>.model-dd{width:min(300px,calc(100vw - 32px))!important;min-width:0!important;max-width:calc(100vw - 32px)!important}
  .topbar>.usage>.sess-dd{width:min(330px,calc(100vw - 32px))!important;min-width:0!important;max-width:calc(100vw - 32px)!important;overflow:auto;overscroll-behavior:contain}
  .sess-dd .wd-hist{height:min(42dvh,260px);max-height:min(42dvh,260px)}
  #chatDeptDd,#chatPersonaDd{min-width:190px;max-width:calc(100vw - 32px)!important;width:max-content;overflow:auto;overscroll-behavior:contain}
}

@container chatbar (max-width:230px){
  .composer{padding-left:4px;padding-right:4px}
  .composer .wrap{gap:1px;padding-left:3px;padding-right:3px}
  .composer .cbtn{width:24px;height:26px}
  .composer .charcount{display:none}
  .composer textarea{padding-left:1px;padding-right:1px}
}

/* M-BOARD-LIGHT-ALUMINIUM-33: ровный матовый алюминий, как корпус MacBook.
   Без декоративных проточек, направленных бликов и заметных градиентов. */
:root[data-theme="light"] .vb-frame,:root[data-theme="mist"] .vb-frame{
  border-color:rgba(76,84,89,.55);
  background:#c2c7ca;
  box-shadow:inset 0 1px rgba(255,255,255,.58),inset 0 0 0 1px rgba(255,255,255,.13),0 4px 14px rgba(47,53,57,.22)
}
:root[data-theme="light"] .vb-shelf,:root[data-theme="mist"] .vb-shelf{
  border-top-color:rgba(75,83,88,.48);
  background:#bcc2c5;
  box-shadow:0 -3px 7px rgba(55,61,65,.2),0 3px 7px rgba(55,61,65,.16),inset 0 1px rgba(255,255,255,.55),inset 0 -1px rgba(65,73,78,.18)
}
:root[data-theme="light"] .vb-tools>button,:root[data-theme="mist"] .vb-tools>button,
:root[data-theme="light"] .vb-theme>button,:root[data-theme="mist"] .vb-theme>button,
:root[data-theme="light"] .vb-status,:root[data-theme="mist"] .vb-status,
:root[data-theme="light"] .vb-icon,:root[data-theme="mist"] .vb-icon{color:#30383d}
:root[data-theme="light"] .vb-tools>button:hover,:root[data-theme="mist"] .vb-tools>button:hover,
:root[data-theme="light"] .vb-theme>button:hover,:root[data-theme="mist"] .vb-theme>button:hover,
:root[data-theme="light"] .vb-icon:hover,:root[data-theme="mist"] .vb-icon:hover,
:root[data-theme="light"] .vb-icon.active,:root[data-theme="mist"] .vb-icon.active{color:#111719;background:rgba(255,255,255,.25)}
.chat-rail-strip .r-btn.rec{color:#ff6b6b;background:rgba(255,80,80,.1)}

.chat-rail-strip .r-btn.vu-live{animation:micpulse 1.2s infinite}
.modes-locked-gate{gap:2px;padding-top:1px}.modes-locked-note{display:block;color:var(--text-muted);text-decoration:none;padding:3px 0;font-size:calc(11.5px * var(--fs-scale,1))}.modes-locked-note span{opacity:.72}.modes-locked-note:hover{color:var(--text)}
.wf-collapse:hover{background:rgba(255,255,255,.04);color:var(--text)}

/* Текстовые триггеры: полка Доски — единый паттерн для хедера и чат-бара.
   Никаких пилюль и движения геометрии: в покое тихо, на hover только ярче. */
.topbar .usage :is(.u-wallet,.u-model,#uSessBtn,#uStoreBtn){
  padding:0!important;margin:0!important;border-radius:0!important;background:none!important;
  color:var(--text-muted)!important;opacity:.68;transition:none!important
}
.topbar .usage :is(.u-wallet,.u-model,#uSessBtn,#uStoreBtn):hover,
.topbar .usage :is(.u-wallet,.u-model,#uSessBtn,#uStoreBtn)[aria-expanded="true"]{
  background:none!important;color:var(--text)!important;opacity:1
}
.topbar .usage :is(.u-wallet,.u-model,#uSessBtn,#uStoreBtn) :is(b,svg,span,.track){transition:none!important}
.topbar .usage :is(.u-wallet,.u-model,#uSessBtn,#uStoreBtn) b{color:inherit}
.topbar .usage .u-wallet.bal-low b{color:var(--warning)}
.topbar .usage .u-wallet.bal-neg b{color:var(--danger)}
.chief-pick{background:none!important;color:var(--text-muted)!important;opacity:.68;font-weight:500;transition:none!important}
.chief-pick:hover,.chief-pick[aria-expanded="true"]{background:none!important;color:var(--text)!important;opacity:1}
.chief-pick .chief-chev{transition:none!important}.vb-persistent-topic{opacity:.72}
/* Схлопнутый список отделов: створка сайдбара под большое число отделов. */
#wfDepts.depts-collapsed{display:none}
/* Заголовок-створка остаётся заголовком раздела: кнопкой он стал ради нажатия,
   а не ради нового вида. Сброс шрифта и отступов был моей ошибкой — размер и
   приглушённость возвращены, левый отступ увеличен, чтобы надпись читалась как
   заголовок блока, а не как ещё один пункт. */
.modes-section-label{width:100%;background:none;border:0;cursor:pointer;text-align:left;
  display:flex;align-items:center;gap:6px;
  font-size:calc(10.5px * var(--fs-scale,1));letter-spacing:.8px;text-transform:uppercase;
  font-family:inherit;font-weight:inherit;color:var(--text-muted);
  padding:12px 12px 6px 18px}
.modes-section-label:hover{color:var(--text-2)}
.modes-section-label #deptsChev{margin-left:auto;width:16px;height:16px;transition:transform .18s ease}
.modes-section-label #deptsChev:not(.open){transform:rotate(-90deg)}

/* Люди пространства: список, приглашение и разовый код. */
.pf-people{display:none;padding:8px 12px 12px}
.pf-people.open{display:block}
.pf-person{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px}
.pf-person-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-person-role{opacity:.6;font-size:12px}
.pf-person--pending .pf-person-name{opacity:.7}
.pf-person-drop{background:none;border:0;cursor:pointer;color:inherit;opacity:.45;font-size:16px;line-height:1;padding:2px 4px}
.pf-person-drop:hover{opacity:.9}
.pf-invite{display:flex;gap:6px;margin-top:10px}
.pf-invite input{flex:1;min-width:0}
.pf-code{margin:8px 0 12px;padding:10px;border:1px solid rgba(128,128,128,.35);border-radius:8px}
.pf-code-title{font-size:12px;opacity:.7;margin-bottom:4px}
.pf-code-value{font-size:22px;letter-spacing:.18em;font-variant-numeric:tabular-nums;user-select:all}
.pf-code-hint{font-size:12px;opacity:.7;margin-top:6px}

/* Провайдер голоса в шестерёнке: список с честной пометкой неподключённых. */
.cs-provider-box{display:none;padding:4px 0 8px}
.cs-provider-box.open{display:block}
.cs-provider{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;
  background:none;border:0;cursor:pointer;color:inherit;padding:8px 12px;border-radius:8px;font:inherit}
.cs-provider:hover:not(.off){background:var(--bg-card)}
.cs-provider b{font-weight:600;font-size:13px}
.cs-provider small{opacity:.62;font-size:11.5px;line-height:1.35}
.cs-provider.active b::after{content:' ✓';color:var(--primary)}
.cs-provider.off{opacity:.45;cursor:not-allowed}
.cs-val{margin-left:auto;opacity:.62;font-size:12px}

/* Строка меню сессии с длинным содержимым (исполнитель: персона · провайдер ·
   модель) переносится целыми частями вместо обрезки хвоста. */
.wallet-dd .wd-row.wd-multi{align-items:flex-start}
.wallet-dd .wd-row.wd-multi .lbl{flex:0 0 auto;white-space:nowrap;overflow:visible}
.wallet-dd .wd-row.wd-multi .amt{flex:1;min-width:0;text-align:right;white-space:normal;
  overflow-wrap:anywhere;line-height:1.45;font-weight:500}
.wallet-dd .wd-row.wd-multi .amt .p{display:inline-block}
.wallet-dd .wd-row.wd-multi .amt .sep{opacity:.45;padding:0 2px}

/* Книга кошелька: событие названо словом, единицы под ним второй строкой. */
.wallet-dd .wd-row/* Название события не горит: оно того же тона, что и вся книга. */
.wallet-dd .wd-row.wd-book .lbl b{font-weight:500;color:var(--text-2)}
.wallet-dd .wd-row.wd-book .lbl i{font-style:normal;opacity:.6;font-size:calc(11px * var(--fs-scale-half))}
.wallet-dd .wd-row
/* Плашки положений темы: образец с квадратом заливки, как на карточках. */
.cs-provider.cs-theme{flex-direction:row;align-items:center;gap:10px}
.cs-swatch{width:22px;height:22px;border-radius:6px;border:1px solid rgba(127,127,127,.35);flex:0 0 auto}
.cs-swatch-light{background:#E6E3DC}
.cs-swatch-mist{background:#96999D}
.cs-swatch-slate{background:#595E64}
.cs-swatch-dark{background:#28313d}

/* Панель настроек прокручивается: положений и списков стало больше, чем
   помещается на телефоне. */
.cs-dd.open{max-height:min(78vh,720px);overflow:auto;-webkit-overflow-scrolling:touch;background:var(--bg-card)!important}

/* Шапка панели настроек стоит на месте: списки внутри длинные, и человек должен
   видеть, где находится, не прокручивая обратно. */
.cs-dd .cs-hd{position:sticky;top:-6px;z-index:2;flex-shrink:0;background:var(--bg-card);margin:-6px -6px 0;padding:16px 18px 8px;border-radius:13px 13px 0 0}
.cs-dd .cs-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cs-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;padding:4px;border:0;background:none;color:inherit;cursor:pointer}
.cs-close svg{width:18px;height:18px}
.cs-close:hover,.cs-close:focus-visible{color:var(--text)}
.cs-item[aria-disabled="true"]{cursor:inherit}
.cs-item[aria-disabled="true"]:hover{background:none}
@media (max-width:820px) and (orientation:portrait){
  .topbar>#chatSettingsDd{width:min(300px,calc(100vw - 10px));min-width:0;max-width:calc(100vw - 10px)!important;box-sizing:border-box}
  #chatSettingsDd #csThemeBox.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,auto);grid-auto-flow:column;gap:2px}
  #csThemeBox .cs-theme{min-width:0;gap:6px;padding:7px 5px}
  #csThemeBox .cs-theme b{font-size:12px;white-space:normal}
  #csThemeBox .cs-swatch{width:18px;height:18px}
}
/* Разделы равны друг другу: разделителей и пояснений между ними нет — их место
   займут подсказки. */
.cs-dd .cs-note{display:none}
/* Подпись оживает только когда ей есть что сказать по делу: отказ браузера
   удержать экран человек увидеть обязан. Пояснения молчат. */
.cs-dd .cs-note.err{display:block;color:var(--danger,#c96a5a);padding:2px 12px 8px;font-size:12px}

/* Список голосов в панели идёт в два столбца: имён около тридцати, простынёй
   они не читаются. Обёртки лёгкие — сам список важнее рамок. */
.cs-voice-box{display:none;padding:4px 8px 8px}
.cs-voice-box.open{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.cs-voice{background:none;border:1px solid transparent;border-radius:8px;cursor:pointer;color:var(--text-2);
  padding:7px 8px;font:inherit;font-size:calc(12px * var(--fs-scale-half));text-align:left;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-voice:hover{background:var(--bg-card);color:var(--text)}
.cs-voice.active{border-color:var(--primary);color:var(--text)}
.cs-voice.active::after{content:' ✓';color:var(--primary)}

/* ═══ Кошелёк: одна строка на событие (CEO 08.09.2026) ═══
   Название и единицы стояли друг под другом, и книга выходила вдвое длиннее
   без единого нового слова. Окна адаптивные — «Озвучка · 3 с · 340 знаков»
   помещается целиком; длинное имя подрезается многоточием, как и везде. */
.wd-row.wd-book{align-items:baseline}
.wd-row.wd-book .lbl i{font-style:normal;opacity:.6}

/* ═══ Книга кошелька: строки одной линией, шеврон на месте ═══
   Текстовый знак «›» внутри своего поля не центрирован, и поворот уводил его
   вбок — шеврон «переезжал». В остальном интерфейсе это SVG с симметричной
   стрелкой в середине поля: она поворачивается на месте. Тот же и здесь. */
.wallet-dd .wd-chev{width:12px;height:12px;flex:0 0 12px;stroke-width:2.2;
  color:var(--text-muted);transition:transform var(--sink)}
/* Сумма уходит вправо сама; шеврон остаётся сидеть у текста. */
.wallet-dd .wd-month>summary b,.wallet-dd .wd-day>summary b{margin-left:auto}
.wallet-dd details[open]>summary>.wd-chev{transform:rotate(180deg)}
/* Системный треугольник слева снят на всех уровнях: он спорил с шевроном. */
.wallet-dd .wd-year>summary,.wallet-dd .wd-month>summary,.wallet-dd .wd-day>summary{
  list-style:none;cursor:pointer}
.wallet-dd .wd-year>summary::-webkit-details-marker,
.wallet-dd .wd-month>summary::-webkit-details-marker,
.wallet-dd .wd-day>summary::-webkit-details-marker{display:none}
.wallet-dd .wd-year>summary::marker,.wallet-dd .wd-month>summary::marker,
.wallet-dd .wd-day>summary::marker{content:''}
/* Год стоит по той же левой линии, что итог и месяцы, а шеврон идёт сразу за
   ним, а не улетает к правому краю. */
.wallet-dd .wd-year>summary{display:flex;align-items:center;gap:6px;padding:7px 6px;
  font-weight:600;color:var(--text-2);font-size:calc(12px * var(--fs-scale-half))}
.wallet-dd .wd-year>summary span{flex:0 0 auto}
.wallet-dd .wd-month>summary span,.wallet-dd .wd-day>summary span{flex:0 0 auto}
.wallet-dd .wd-month>summary,.wallet-dd .wd-day>summary{align-items:center;gap:6px}
/* Уровни не наращивают отступ: лестница из вложений не пролистывается. */
.wallet-dd .wd-day{margin-left:0}
.wallet-dd .wd-day .wd-row,.wallet-dd .wd-row{padding-left:6px}
/* Событие — одна строка: дата слева, название и единицы посередине, сумма
   справа. Ничего не переносится и не встаёт вторым этажом. */
.wallet-dd .wd-row.wd-book{align-items:center;gap:6px;flex-wrap:nowrap}
.wallet-dd .wd-row.wd-book .dt{flex:0 0 auto}
.wallet-dd .wd-row.wd-book .lbl{display:block;flex:1;min-width:0;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.wallet-dd .wd-row.wd-book .amt{flex:0 0 auto}
/* Год несёт только год: число операций стоит в итоге за всё время. */

/* Плашки покупок: суммы пополнения и тарифы. Одинаковые по виду, потому что
   покупаются одним движком и стоят рядом. */
.wd-offers{display:flex;flex-wrap:wrap;gap:6px;padding:2px 8px 10px}
.wd-offer{flex:1 1 calc(25% - 6px);display:flex;align-items:center;justify-content:center;
  gap:8px;padding:9px 11px;border-radius:10px;border:1px solid var(--border);
  background:var(--bg-0);color:var(--text-2);font:inherit;
  font-size:calc(12px * var(--fs-scale-half));cursor:pointer;transition:all var(--sink)}
.wd-offer b{color:var(--text);font-weight:600;white-space:nowrap}
.wd-offer:hover:not(:disabled){border-color:var(--primary);color:var(--text)}
.wd-offer:disabled{opacity:.45;cursor:default}

/* ═══ Поле ввода: один вид на все выпадающие панели (CEO 08.09.2026) ═══
   Вид описывался отдельно для пароля, удаления и промо-кода, а полям «Людей
   пространства», имени Хранителя и переименования не досталось ничего — они
   оставались браузерными. Теперь правило одно, а особые случаи уточняют его. */
.profile-dd input[type="text"],.profile-dd input[type="email"],
.profile-dd input[type="password"],.profile-dd input[type="search"],
.wallet-dd input[type="text"],.sess-dd input[type="text"]{
  padding:8px 10px;border-radius:9px;border:1px solid var(--border);
  background:var(--bg-0);color:var(--text);font:inherit;
  font-size:calc(12.5px * var(--fs-scale-half));outline:none;
  transition:border-color var(--sink);-webkit-appearance:none;appearance:none}
.profile-dd input[type="text"]::placeholder,.profile-dd input[type="email"]::placeholder,
.profile-dd input[type="password"]::placeholder,
.wallet-dd input[type="text"]::placeholder{color:var(--text-muted);opacity:1}
.profile-dd input[type="text"]:focus,.profile-dd input[type="email"]:focus,
.profile-dd input[type="password"]:focus,
.wallet-dd input[type="text"]:focus{border-color:var(--primary)}
/* Подтверждение удаления остаётся особым: слово набирается по центру, а фокус
   красный — человек должен видеть, что действие опасное. */
.profile-dd .pf-del input:focus{border-color:var(--danger)}

/* Compact accounting rows: shared quiet surface, no separate cards. */
.sess-dd .wd-row .amt{font-weight:400;color:var(--text-2)}
.sess-dd .wd-row .lbl{font-size:calc(11px * var(--fs-scale-half))}

/* A line stays open; the dark chart colour must not fill its polygon. */
.dark-blueprint .vb-line{fill:none}

/* Restored from a02cbc1fa / 16d2c461f, adapted to the shared shell. */
/* Один цифровой чек на обеих поверхностях: карточка чата и запись тетради
   получают один semantic class от KorpusReceiptView и одну одежду. */
.digital-receipt{box-sizing:border-box;width:min(100%,430px)!important;max-width:430px!important;
  padding:18px 20px!important;border:1px dashed var(--border)!important;border-radius:5px!important;
  background:var(--bg-card)!important;box-shadow:0 10px 24px rgba(0,0,0,.12)!important;
  color:var(--text)!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  position:relative;overflow:hidden}
.digital-receipt::before,.digital-receipt::after{content:'';position:absolute;left:8px;right:8px;height:1px;
  border-top:1px dashed var(--border-soft)}
.digital-receipt::before{top:8px}.digital-receipt::after{bottom:8px}
.digital-receipt .stream-bubble-headtext,.digital-receipt .sp-body{font-style:normal!important;line-height:1.5}
.sp-entry.digital-receipt{margin:10px 0 18px;padding:18px 20px!important}
.sp-entry.digital-receipt::before{display:none}
.sp-entry.digital-receipt+.sp-entry{border-top:0}
.sp-receipt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px;align-items:start;margin:8px 0 20px}
.sp-receipt-grid .sp-entry.digital-receipt{width:100%!important;max-width:none!important;margin:0}
@media(max-width:560px){.digital-receipt{width:100%!important;padding:16px 14px!important}}

/* Shared receipt surface: long merchant/file names and phone landscape. */
.digital-receipt{min-width:0;overflow-wrap:anywhere}
.digital-receipt .stream-bubble-header,.digital-receipt .stream-bubble-headtext,.digital-receipt .sp-body{min-width:0;max-width:100%;overflow-wrap:anywhere}
.digital-receipt .stream-bubble-header{align-items:flex-start}
.digital-receipt .stream-bubble-headtext,.digital-receipt .sp-body{color:var(--text)!important}
.bubble img{max-width:100%;height:auto}
.bubble-file-attachment{max-width:100%;min-width:0;box-sizing:border-box}
.bubble-file-attachment .file-info{min-width:0}
.bubble-file-attachment .file-name{white-space:normal;overflow-wrap:anywhere}

/* Legal workspace: existing cases first, useful actions below. */
.cb-legal-tools{margin-top:24px}
.cb-legal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.cb-legal-action{font:inherit;text-align:left;color:var(--text);background:color-mix(in srgb,var(--bg-card) 70%,transparent);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:7px;cursor:pointer;min-width:0}
.cb-legal-action b{font-size:15px;font-weight:550}
.cb-legal-action span{font-size:13px;color:var(--text-dim);line-height:1.5}
.cb-legal-action:hover,.cb-legal-action:focus-visible{border-color:var(--accent);outline:2px solid transparent}
.cb-legal-sources{margin-top:18px;color:var(--text-dim);font-size:13px;line-height:1.6}
.cb-legal-sources summary{cursor:pointer;color:var(--text)}
.cb-legal-sources nav{display:flex;flex-wrap:wrap;gap:10px 20px}
.cb-legal-sources a{color:var(--accent)}
.cb-legal-tools a,.ig-s-val{overflow-wrap:anywhere}

/* Legal case actions share the cabinet theme and remain usable on touch screens. */
[data-legal-matter]{margin:20px 0;padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--bg-card);overflow-wrap:anywhere}
[data-legal-matter] h3{font-size:15px;margin:24px 0 12px}
[data-legal-matter] details{border:1px solid var(--border);border-radius:10px;margin:8px 0;padding:10px 12px}
[data-legal-matter] summary{cursor:pointer;min-height:24px;line-height:1.6}
[data-legal-matter] button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;margin:4px 4px 4px 0;border:1px solid var(--border);border-radius:9px;background:var(--bg-card);color:var(--text);font:inherit;font-size:12px;cursor:pointer;white-space:normal}
[data-legal-matter] button:hover{border-color:var(--text)}
[data-legal-matter] button:disabled{opacity:.5;cursor:wait}
[data-legal-matter] :is(input,select,textarea){color:var(--text);background:var(--bg-0);border:1px solid var(--border);border-radius:8px;padding:10px;max-width:100%;font:inherit}
[data-legal-matter] :is(button,input,select,textarea,summary):focus-visible{outline:2px solid var(--text);outline-offset:3px}
[data-matter-status]{min-height:24px;margin:8px 0;color:var(--text)}
[data-legal-matter] pre{max-height:320px;overflow:auto;padding:10px;background:var(--bg-0);border-radius:8px}
[data-legal-matter] .cb-pr-dim{line-height:1.5;font-size:12px}
@media(max-width:600px){[data-legal-matter]{padding:12px;margin:12px 0}[data-legal-matter] button{min-height:44px}[data-legal-matter] :is(input,select,textarea){font-size:16px}}

/* Shared desktop/mobile theme grid and independently scrolling cabinet. */
#chatSettingsDd #csThemeBox.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,auto);grid-auto-flow:column;gap:4px}
#csThemeBox .cs-theme{min-width:0}
#wfMain:has(>.cb-wrap){overflow:hidden;min-height:0;display:flex;flex-direction:column}
#wfMain>.cb-wrap{display:flex;flex-direction:column;min-height:0;max-height:100%;width:100%;box-sizing:border-box;flex:1;padding-bottom:0}
.cb-fixed{flex:0 0 auto;background:var(--bg-0);z-index:2}
.cb-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-bottom:64px;scrollbar-gutter:stable}
.cb-section-nav{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 10px}
.cb-section-nav button{border:1px solid var(--border);border-radius:20px;background:var(--bg-card);color:var(--text);padding:7px 12px;cursor:pointer;font:inherit}

/* Department overview density: keep all seven legal integrations visible on desktop. */
@media(min-width:1100px){
 .cb-wrap:has(>.cb-fixed>.cb-section-nav) .cb-sub{margin-bottom:10px}
 .cb-wrap:has(>.cb-fixed>.cb-section-nav) .cb-sec-t{margin:10px 2px 7px}
 .cb-wrap:has(>.cb-fixed>.cb-section-nav) .cb-grid{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .cb-wrap:has(>.cb-fixed>.cb-section-nav) .cb-grid .sp-pill{padding:9px 11px}
 .cb-wrap:has(>.cb-fixed>.cb-section-nav) .cb-card-hd{margin-bottom:4px}
}

@media(min-width:1100px){
 .cb-legal-grid{gap:8px}
 .cb-legal-action{padding:10px 12px;gap:4px}
 .cb-legal-action b{font-size:14px}
 .cb-legal-action span{font-size:12px;line-height:1.4}
}

/* Keeper's open-source desk and notebook-style reading surface. */
#keeperOpenTools{margin-top:26px}
.zone-folder #keeperOpenTools,.zone-entity #keeperOpenTools{display:none}
.keeper-tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.keeper-tool{font:inherit;text-align:left;color:var(--text);background:color-mix(in srgb,var(--bg-card) 88%,white);border:1px solid var(--border);border-radius:16px;padding:17px;display:grid;gap:9px;cursor:pointer}
.keeper-tool-symbol{font-size:24px;color:var(--accent)}
.keeper-tool>span:last-child{font-size:13px;line-height:1.5;color:var(--text-2)}
.keeper-tool:hover,.keeper-tool:focus-visible{border-color:var(--accent);outline:2px solid transparent}
.ig-methods{gap:10px}
button.ig-mth{width:100%;font:inherit;color:var(--text);text-align:left;background:color-mix(in srgb,var(--bg-card) 92%,white);border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer}
.source-method-hint{display:block;font-size:13px;line-height:1.5;color:var(--text-2);margin-top:6px}
.source-form-help{font-size:14px;line-height:1.6;color:var(--text-2);padding:0 18px}
.source-workspace{max-width:960px;margin:auto}
.source-paper{display:block;background:color-mix(in srgb,var(--bg-card) 88%,white);padding:24px 30px}
.source-toolbar{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;background:transparent;border-radius:0}
.source-toolbar button,.source-links button{font:inherit;color:var(--text);background:transparent;border:1px solid var(--border);border-radius:9px;padding:8px 12px;cursor:pointer}
.source-entry{border:0;border-bottom:1px solid var(--border);padding:18px 0;border-radius:0}
.source-entry h2{font-size:20px;line-height:1.4;margin:0 0 8px;overflow-wrap:anywhere}
.source-meta{font-size:13px;color:var(--text-2);line-height:1.6}
.source-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.8}
.source-links{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:16px}
.source-links a,.source-table a{color:var(--accent)}
.source-table{overflow:auto}.source-table table{width:100%;border-collapse:collapse}.source-table td,.source-table th{padding:10px;border:1px solid var(--border);overflow-wrap:anywhere}
@media(max-width:700px){.keeper-tools-grid{grid-template-columns:1fr}.source-paper{padding:16px}.source-entry h2{font-size:18px}.source-text{font-size:15px}}

/* Atmospheric surfaces stay attached to the resizable work area, never the board. */
#wfMain[data-atmosphere]:not([data-atmosphere=""]):not(.zone-visual-board){
 background-color:#526571;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.045' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E"),linear-gradient(110deg,rgba(36,52,64,.93),rgba(53,70,80,.84)),var(--workspace-scene);
 background-size:160px 160px,100% 100%,cover;background-position:center;background-repeat:repeat,no-repeat,no-repeat;background-attachment:fixed;
}
#wfMain[data-atmosphere="keeper"]{--workspace-scene:url('/img/workspaces/keeper.webp')}
#wfMain[data-atmosphere="legal"]{--workspace-scene:url('/img/workspaces/legal.webp')}
#wfMain[data-atmosphere="finance"]{--workspace-scene:url('/img/workspaces/finance.webp')}
#wfMain[data-atmosphere="marketing"]{--workspace-scene:url('/img/workspaces/marketing.webp')}
#wfMain[data-atmosphere="conference"]{--workspace-scene:url('/img/workspaces/conference.webp')}
:root[data-theme="light"] #wfMain[data-atmosphere]:not([data-atmosphere=""]):not(.zone-visual-board),
:root[data-theme="mist"] #wfMain[data-atmosphere]:not([data-atmosphere=""]):not(.zone-visual-board){
 background-color:#e5edef;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.045' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E"),linear-gradient(110deg,rgba(240,245,244,.93),rgba(238,244,244,.78)),var(--workspace-scene);
}
#wfMain[data-atmosphere] .cb-fixed{background:transparent}
#wfMain[data-atmosphere] .section-preview{background:color-mix(in srgb,var(--bg-card) 57%,transparent);border:1px solid var(--border);border-radius:12px;backdrop-filter:blur(9px);box-shadow:0 12px 40px #10222b15}

#wfMain:has(> #keeperOpenTools):not(.zone-folder):not(.zone-entity){display:flex;flex-direction:column}
#wfMain:has(> #keeperOpenTools)>#spGrid{flex:0 0 auto}
#wfMain>#keeperOpenTools{margin-top:auto;padding-top:clamp(100px,20vh,220px);padding-bottom:48px;flex:0 0 auto}
#wfMain #keeperOpenTools>.cb-sec-t{font-size:11px;letter-spacing:.04em;font-weight:500;margin-bottom:8px}
#wfMain .keeper-tool,#wfMain .sp-pill,#wfMain button.ig-mth{
 background:color-mix(in srgb,var(--bg-card) 57%,transparent);
 border:1px solid color-mix(in srgb,var(--text) 16%,transparent);
 backdrop-filter:blur(9px) saturate(.85);-webkit-backdrop-filter:blur(9px) saturate(.85);
 box-shadow:inset 0 1px 0 #ffffff19,0 8px 24px #14253312;
}
#wfMain .keeper-tool{padding:10px 12px;gap:5px;border-radius:12px;position:relative}
#wfMain .keeper-tool>b{font-size:12px;font-weight:550}
#wfMain .keeper-tool>span:last-child{font-size:11px;line-height:1.4}
#wfMain .keeper-tool-symbol{font-size:16px}
#wfMain .sp-pill{position:relative}
.sp-entry-count{display:inline;text-align:right;font-size:inherit;line-height:inherit;margin-left:auto;opacity:.82}
#wfMain .sp-trash{opacity:.55;transform:scale(.82);transform-origin:bottom right}
#wfMain .sp-trash:hover,#wfMain .sp-trash.dropover{opacity:1;transform:scale(1)}
.source-provenance{font-size:12px;line-height:1.65;color:var(--text-2);margin-top:9px}
.source-provenance a{color:var(--accent);text-underline-offset:3px}
@media(max-width:700px){#wfMain>#keeperOpenTools{padding-top:80px}#wfMain .keeper-tools-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#wfMain .keeper-tool>span:last-child{display:none}}

/* Release 087: quiet glass surfaces and compact workspace controls. */
#wfMain .sp-tile-footer{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:.733em;color:var(--text-2);margin-top:3px}
#wfMain .sp-tile-footer .sp-sub{font-size:inherit;margin-top:0}
#wfMain .wf-h .wf-actions{display:flex;justify-content:flex-end;margin-left:auto;flex-wrap:wrap}
#wfMain .wf-h .wf-actions .cb-cmd{display:inline-flex}
#wfMain .wf-h .wf-actions .btn,#wfMain .cb-legal-action,#wfMain .ig-method-card,#igOverlay .ig-f-in,#wfMain .source-toolbar button{
 background:color-mix(in srgb,var(--bg-card) 57%,transparent);border:1px solid color-mix(in srgb,var(--text) 16%,transparent);backdrop-filter:blur(9px) saturate(.85);-webkit-backdrop-filter:blur(9px) saturate(.85);box-shadow:inset 0 1px 0 #ffffff19,0 8px 24px #14253312;color:var(--text)
}
#wfMain .wf-h p,#wfMain #keeperOpenTools>.cb-sec-t,#wfMain .cb-sec-t{color:var(--text);opacity:.9}
#wfMain .ig-method-card{position:relative;border-radius:12px;overflow:hidden;padding:4px 16px 14px 20px}
#wfMain .ig-method-card::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;background:#55d9cc;box-shadow:0 0 14px 3px #55d9cc55;border-radius:3px}
#wfMain .ig-method-card .ig-mth{width:100%;background:transparent;border:0;box-shadow:none;backdrop-filter:none;padding:12px 0}
#wfMain .ig-method-card .source-provenance{margin-top:0;max-width:85ch}
#wfMain .ig-method-card .source-provenance b{display:block;margin-bottom:3px;color:var(--text)}
#wfMain .ig-method-card .source-provenance a{display:inline-block;margin-top:6px}
#wfMain .cb-scroll:has([data-cb-anchor="checks"]){display:flex;flex-direction:column}
#wfMain .cb-scroll>[data-cb-anchor="checks"]{margin-top:auto;padding-top:clamp(56px,12vh,120px)}

.source-fields{margin:0}.source-fields>div{padding:8px 0;border-bottom:1px solid var(--border)}.source-fields dt{font-size:12px;color:var(--text-2);margin-bottom:4px}.source-fields dd{margin:0;overflow-wrap:anywhere}.source-fields .source-fields{padding-left:12px}

#wfMain .wf-h .sp-add-mob{display:none}
#wfMain .ig-method-card .ig-mact{opacity:.8}

/* Workspace surface contract: shared glass, brighter fields, shell excluded. */
#wfMain,#igOverlay,:is(#kmFolder,#kmBook,#kmProc,#kmProcEdit,#kmDoc,#kmRen,#kmBin,#kmTrash,#kmMove){--workspace-glass:color-mix(in srgb,var(--bg-card) 57%,transparent);--workspace-field:color-mix(in srgb,var(--bg-card) 57%,#ffffff16);--workspace-edge:color-mix(in srgb,var(--text) 16%,transparent)}
#wfMain :is(.keeper-tool,.sp-pill,.cb-legal-action,.ig-method-card,.brd-form-card,.brd-card,.cb-reader,.cb-proc-card,.source-paper,.sp-reader,[data-legal-matter],[data-legal-matter] details,.cb-section-nav button,.sp-sheet,.sp-folder-drawer),#igOverlay .ig-panel,:is(#kmFolder,#kmBook,#kmProc,#kmProcEdit,#kmDoc,#kmRen,#kmBin,#kmTrash,#kmMove) .km-card{
 background:var(--workspace-glass);border:1px solid var(--workspace-edge);backdrop-filter:blur(9px) saturate(.85);-webkit-backdrop-filter:blur(9px) saturate(.85);box-shadow:inset 0 1px 0 #ffffff19,0 8px 24px #14253312;color:var(--text)
}
#wfMain .cb-section-nav button{border-radius:9px;padding:5px 9px;font-size:12px;line-height:1.3}
#wfMain :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select),#igOverlay :is(.ig-f-in,input,textarea,select),:is(#kmFolder,#kmBook,#kmProc,#kmProcEdit,#kmDoc,#kmRen,#kmBin,#kmTrash,#kmMove) :is(input,textarea,select){background:var(--workspace-field);border:1px solid var(--workspace-edge);border-radius:9px;color:var(--text);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
#wfMain :is(input,textarea,select):focus-visible,#igOverlay :is(.ig-f-in,input,textarea,select):focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 65%,transparent);outline-offset:2px}
#wfMain select option,#igOverlay select option{background:var(--bg-card);color:var(--text)}
#igOverlay .source-choices,#wfMain .source-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0}
#igOverlay .source-choice,#wfMain .source-choice{display:flex;align-items:center;gap:10px;text-align:left;padding:12px;border-radius:10px;background:var(--workspace-glass);border:1px solid var(--workspace-edge);color:var(--text);font:inherit;cursor:pointer}
#igOverlay .source-choice:hover,#wfMain .source-choice:hover,#wfMain .source-choice[aria-pressed=true]{border-color:var(--accent);background:var(--workspace-field)}
.source-choice-mark{display:grid;place-items:center;min-width:32px;height:32px;font-size:11px;font-weight:650;border-radius:8px;background:#8fd9dc18;color:var(--text)}
#wfMain .radio-player{width:100%;margin:10px 0}#wfMain .radio-status{min-height:1.5em;font-size:13px;color:var(--text-2)}

#igOverlay,:is(#kmFolder,#kmBook,#kmProc,#kmProcEdit,#kmDoc,#kmRen,#kmBin,#kmTrash,#kmMove){background:rgba(8,10,14,.16);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}

#wfMain .source-choice{min-width:0;overflow-wrap:anywhere;font-size:13px}#wfMain .source-choice>span:last-child{min-width:0}
#wfMain .radio-player{display:none}#wfMain .radio-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:14px 0}
#wfMain .radio-controls label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-2)}#wfMain .radio-controls input{width:110px;accent-color:var(--accent)}
#wfMain .radio-origin{color:var(--accent);font-size:13px;text-underline-offset:3px}

/* Workspace action buttons: same material, slightly denser than cards. */
#wfMain :is(.btn.primary,.ig-p-go,.cb-add,[data-legal-matter] button,.source-toolbar button),#igOverlay :is(.ig-p-go,.btn.primary),:is(#kmFolder,#kmBook,#kmProc,#kmProcEdit,#kmDoc,#kmRen,#kmBin,#kmTrash,#kmMove) .btn.primary{background:color-mix(in srgb,var(--bg-card) 70%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--text);box-shadow:inset 0 1px 0 #ffffff19;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
#wfMain :is(.btn.primary,.ig-p-go,.cb-add,[data-legal-matter] button):hover,#igOverlay .ig-p-go:hover{background:color-mix(in srgb,var(--bg-card) 80%,transparent);border-color:var(--accent)}

#wfMain .section-preview-values{display:grid;gap:12px;margin:20px 0}
#wfMain .section-preview-values article{border-left:2px solid var(--accent);padding-left:14px}
#wfMain .section-preview-values h3{font-size:14px;margin:0 0 4px;color:var(--text)}
#wfMain .section-preview-values p{font-size:13px;margin:0;color:var(--text)}
#wfMain .section-preview-note{font-size:12px;color:var(--text-2)}
#wfMain .section-preview-status{font-size:12px;font-weight:600;color:var(--text)}

/* Company conference: scoped glass participant groups. */
#wfMain .brd-department{min-width:0;margin:8px 0;padding:10px 12px;border:1px solid rgba(180,218,218,.22);border-radius:10px;background:rgba(160,205,205,.06)}
#wfMain .brd-department legend{padding:0 6px;font-size:13px}
#wfMain .brd-department .brd-part{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#wfMain .brd-department input[type=checkbox]{width:auto;accent-color:#63b9af}

/* Conference setup follows available workspace width, not viewport width. */
#brdForm{container-type:inline-size;min-width:0}
#wfMain .brd-compose{max-width:none;width:100%;box-sizing:border-box;margin-top:2px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr);gap:12px 18px}
.brd-compose>.brd-form-t,.brd-compose-topic,.brd-compose>#brdFormErr,.brd-compose>.brd-form-b{grid-column:1/-1}
.brd-compose-topic{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.brd-compose-topic label,.brd-compose-settings>label{display:flex;flex-direction:column;gap:5px;font-size:13px}
.brd-compose-settings{display:flex;flex-direction:column;gap:9px;min-width:0;max-height:48vh;overflow:auto;padding-right:5px}
#wfMain .brd-compose .brd-parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));align-items:start;max-height:48vh;overflow:auto;padding-right:5px}
#wfMain .brd-compose .brd-department{margin:3px 0}
#wfMain .brd-compose :is(input:not([type=checkbox]):not([type=radio]),textarea,select){width:100%;box-sizing:border-box;min-width:0;background:rgba(190,221,224,.13);color:var(--text);border:1px solid rgba(190,221,224,.24);border-radius:9px;padding:8px;font:inherit}
#wfMain .brd-compose textarea{resize:vertical;max-height:110px}
.brd-options{border:1px solid rgba(180,218,218,.2);border-radius:9px;padding:9px;display:flex;flex-direction:column;gap:7px;min-width:0;margin:0}
.brd-options label{font-size:13px}.brd-options small{display:block;margin-left:21px}
.brd-compose small{font-size:11px;line-height:1.45;opacity:.8}
#wfMain .brd-compose input:is([type=radio],[type=checkbox]){width:auto;accent-color:#63b9af}
@container (max-width:650px){#wfMain .brd-compose{grid-template-columns:minmax(0,1fr)}.brd-compose-topic{grid-template-columns:1fr}.brd-compose-settings{max-height:none}#wfMain .brd-compose .brd-parts{max-height:32vh}}

#brdList[hidden],#brdForm[hidden]{display:none!important}
.brd-compose-settings>label:has(input[type=checkbox]){flex-direction:row;align-items:center}

/* Marketing uses the existing department glass and scene. */
#wfMain[data-atmosphere="marketing"] .cb-scroll:has(>.cb-marketing-deck){display:flex;flex-direction:column}
#wfMain[data-atmosphere="marketing"] .cb-marketing-deck{margin-top:auto;padding-top:clamp(48px,12vh,140px);flex-shrink:0}
#wfMain .cb-marketing-deck>.cb-sec-t{text-transform:uppercase;letter-spacing:.06em}
#wfMain .cb-marketing-deck .cb-legal-action{overflow-wrap:anywhere}
#igOverlay select.ig-f-in{width:100%;min-width:0}
#igOverlay .ig-p-go:disabled{opacity:.5;cursor:not-allowed}

/* Live finance: retain the workspace scene, compact future subscription offer. */
#wfMain>.section-preview.finance-preview{box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100% - 48px);max-width:none;margin:24px;padding:0;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
.finance-preview>h2{max-width:760px;font-size:clamp(22px,2.2vw,34px);line-height:1.25;margin:0;text-wrap:balance}
.finance-preview-offer{margin-top:120px;padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--bg-card);backdrop-filter:blur(12px)}
.finance-preview-offer h3{font-size:clamp(18px,1.7vw,25px);line-height:1.35;margin:0 0 14px}.finance-preview-offer p{line-height:1.5}

/* Keeper notebook actions stay reachable in the root and inside folders. */
#wfMain .sp-tile-actions{display:flex;justify-content:flex-end;gap:3px;margin-top:8px}
#wfMain .sp-tile-actions .sp-item-act{position:static;display:grid;opacity:1;flex:0 0 40px;width:40px;height:40px}
#wfMain .sp-pill.has-actions{padding-right:12px}
#wfMain .sp-folder-ren{display:grid;right:46px}
#wfMain .sp-folder-pill{padding-top:42px}
#wfMain .sp-folder-drawer{grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr))}
#wfMain .sp-folder-drawer .sp-pill{min-width:0}
#wfMain .sp-rh{flex-wrap:nowrap;gap:6px}
#wfMain .sp-rh h2{min-width:0;overflow-wrap:anywhere}
#wfMain .sp-rh button{flex-shrink:0}

/* Selectable message content; controls and drag handles retain their own rules. */
#thread .bubble,#thread .bubble :is(p,span,strong,em,a,code,pre,td,th,li){-webkit-user-select:text;user-select:text;-webkit-touch-callout:initial}
#thread .bubble :is(button,button *){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.md-table-scroll{max-width:100%;overflow-x:auto;margin:8px 0;overscroll-behavior-x:contain}
.md-table{border-collapse:collapse;width:100%;font-size:.95em;line-height:1.45}
.md-table th,.md-table td{padding:7px 9px;border:1px solid var(--border);vertical-align:top;min-width:72px}
.md-table th{font-weight:650;background:color-mix(in srgb,var(--bg-card) 70%,transparent)}
/* Quiet outline wallpaper, independent of workspace photography. */
#thread{background-color:var(--bg-1);background-size:1680px 2240px;background-position:center 24px;background-repeat:repeat}
#thread[data-chat-pattern="life"]{background-image:url('/img/chat/life.svg?v=20260917-contour-v10')}
#thread[data-chat-pattern="documents"]{background-image:url('/img/chat/documents.svg?v=20260917-contour-v10')}
#thread[data-chat-pattern="business"]{background-image:url('/img/chat/business.svg?v=20260917-contour-v10')}
:root[data-theme="light"] #thread,:root[data-theme="mist"] #thread{background-color:var(--bg-1)}
#thread .msg>.time{color:var(--text-2);font-size:11px;font-variant-numeric:tabular-nums;opacity:1}

.voice-lite .vl-icon{grid-column:1;grid-row:1;font-size:14px}
.voice-lite .vl-timer{grid-column:2;grid-row:1;display:inline!important;color:var(--text-2);font-size:12px}
.voice-lite .vl-checks{grid-column:1/-1;grid-row:3;justify-self:end;margin-left:12px;letter-spacing:-2px;font-size:13px}
.voice-lite .vl-text{grid-column:1/-1;grid-row:2;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}
.voice-lite .vl-dots{grid-column:3;grid-row:1}
.bubble-tts-controls{gap:8px;flex-wrap:wrap;padding-right:28px}
.bubble-tts-controls .bubble-tts-btn{display:inline-grid;place-items:center;min-width:0;min-height:0;padding:2px;border:0;border-radius:0;background:none;font-size:13px;color:var(--text);opacity:.6;touch-action:manipulation}
.bubble-tts-controls .bubble-tts-speed{display:none}
.bubble-tts-controls[data-active="true"] .bubble-tts-speed{display:flex;opacity:.5}
.bubble-tts-controls:not([data-active="true"]) .bubble-tts-seek{display:none}
.bubble-tts-controls .bubble-tts-speed-step{width:22px;height:22px;font-size:17px}
.bubble-tts-controls .bubble-tts-speed-val{font-size:10px;color:var(--text-2)}
.bubble-tts-controls .bubble-tts-seek{opacity:1;flex-wrap:wrap}
.bubble-tts-controls .bubble-tts-seek-range{height:32px;width:100%;min-width:70px}
.bubble-tts-controls .bubble-tts-time{font-size:10px;color:var(--text-2)}

#wfMain:not(.zone-folder):not(.zone-entity) .wf-h{flex-wrap:wrap}
#wfMain:not(.zone-folder):not(.zone-entity) .wf-h .wf-actions{flex-wrap:nowrap;gap:6px;max-width:100%}
#wfMain .wf-h .wf-actions .btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;white-space:nowrap}
#wfMain:is(.zone-folder,.zone-entity) .wf-h .wf-actions{display:none}

.bubble-tts-play svg{width:13px;height:13px;fill:currentColor;stroke:none;pointer-events:none}

/* Tenant files reuse the workspace reader and trash confirmation. */
.sp-files-pill{margin:8px 0;min-height:40px}.sp-files-pill svg{width:20px;height:20px;fill:none;stroke:currentColor}
.sp-files-list details{margin:12px 0}.sp-files-list summary{cursor:pointer;padding:8px 0;font-weight:600}
.sp-file-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}
.sp-file-row a{flex:1 1 160px;overflow-wrap:anywhere;color:var(--text-primary);min-width:0}.sp-file-row span{font-size:12px;opacity:.7}.sp-file-row button{min-height:38px}

.sp-files-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sp-files-toolbar label{display:flex;align-items:center;gap:6px}.sp-file-row .sp-file-format{display:flex;flex-direction:column;align-items:center;flex:0 0 34px;opacity:.85}.sp-file-format svg{width:24px;height:24px}.sp-file-format small{font-size:9px;line-height:12px}.sp-file-select,.sp-files-all{width:18px;height:18px;flex:none;accent-color:var(--accent)}

.sp-file-row{display:grid;grid-template-columns:18px 26px minmax(0,1fr) auto 36px 36px;gap:8px;flex-wrap:nowrap}.sp-file-row .sp-file-format{width:26px;height:30px;object-fit:contain}.sp-file-row .sp-file-action{display:inline-flex;align-items:center;justify-content:center;width:36px;height:38px;min-height:38px;border:0;background:transparent;color:var(--text-primary);padding:7px;cursor:pointer}.sp-file-action svg{width:20px;height:20px}.sp-file-row>span{white-space:nowrap}.sp-file-action:hover{background:var(--border);border-radius:8px}@media(max-width:520px){.sp-file-row{grid-template-columns:18px 26px minmax(0,1fr) 32px 32px;gap:6px}.sp-file-row>span{grid-column:3;grid-row:2}.sp-file-row .sp-file-download{grid-column:4;grid-row:1 / 3}.sp-file-row .sp-file-trash{grid-column:5;grid-row:1 / 3}.sp-file-row .sp-file-action{width:32px}.wf-actions .sp-files-pill{padding-left:9px;padding-right:9px}}

/* Files surface: compact shared actions and neutral selection. */
#wfMain .wf-h .wf-actions .btn{flex:0 0 auto;width:auto;min-width:0;min-height:28px;margin:0;padding:4px 10px;gap:4px;border-radius:999px;font-size:12px;line-height:18px;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
#wfMain .wf-h .wf-actions{gap:6px}
.sp-files-close{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;padding:6px;border:0;background:transparent;color:var(--text-2);cursor:pointer}
.sp-files-close svg{width:20px;height:20px}
.sp-files-close:hover{color:var(--text)}
.sp-files-link{appearance:none;border:0;background:transparent;box-shadow:none;color:var(--text-2);font:inherit;padding:3px 0;cursor:pointer;min-height:0}
.sp-files-link:hover:not(:disabled){color:var(--text);text-decoration:underline}
.sp-files-link:disabled{opacity:.4;cursor:initial}
.sp-file-select,.sp-files-all{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:13px;height:13px;min-width:13px;min-height:13px;padding:0;margin:0;border:1px solid #888;border-radius:2px;background:#8882;box-shadow:none;accent-color:#888;cursor:pointer}
.sp-file-select:checked,.sp-files-all:checked,.sp-files-all:indeterminate{background:#777;border-color:#888}
.sp-file-select:checked::after,.sp-files-all:checked::after,.sp-files-all:indeterminate::after{content:'';display:block;width:7px;height:2px;background:#fff;border-radius:1px}
.sp-file-select:focus-visible,.sp-files-all:focus-visible,.sp-files-close:focus-visible,.sp-files-link:focus-visible{outline:2px solid var(--text-2);outline-offset:3px}
#kmBin .km-b{display:flex;align-items:center;justify-content:space-between}
#kmBinClear{margin-right:auto}

.sp-file-row>.sp-file-name{grid-column:3;grid-row:1;white-space:normal;overflow-wrap:anywhere;font-size:inherit;opacity:1}.sp-file-action[hidden]{display:none}.sp-file-trash{grid-column:6}@media(max-width:520px){.sp-file-trash{grid-column:5}}

/* Files: section-scoped selection, quiet storage facts and shared action pills. */
.sp-files-description{margin:0 0 16px;color:var(--text-2);font-size:13px;line-height:1.5;opacity:.9}
.sp-files-storage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin:0;max-width:560px;color:var(--text-2);font-size:12px;opacity:.9}
.sp-files-storage>div{display:flex;justify-content:space-between;gap:12px}.sp-files-storage dt{font-weight:400}.sp-files-storage dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.sp-files-hint{font-size:11px;line-height:1.5;color:var(--text-2);opacity:.9;margin:8px 0 16px}
.sp-files-toolbar{justify-content:flex-start;gap:6px}
.sp-files-toolbar .sp-files-action-pill{flex:0 0 auto;width:auto;min-width:0;min-height:28px;margin:0;padding:4px 10px;gap:4px;border-radius:999px;font-size:12px;line-height:18px;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--text-2)}
.sp-files-action-pill:disabled{opacity:.4;cursor:initial}.sp-files-toolbar .sp-files-action-pill.has-selection{color:var(--text);border-color:var(--primary);background:var(--primary-soft)}
.sp-files-section-select{padding:6px 0 10px;border-bottom:1px solid var(--border)}
.sp-files-list summary{color:var(--text-2);opacity:.9}
@media(max-width:520px){.sp-files-storage{grid-template-columns:1fr;max-width:340px}}

/* Shared integration cards and compact department commands. */
.ig-card .ig-head{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:7px}
.ig-card .ig-name{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.ig-card .ig-desc{display:block;font-size:12px;line-height:1.5;color:var(--text-2);margin:0}
.ig-badge{display:inline-flex;align-items:center;font-size:9px;line-height:14px;padding:1px 5px;border-radius:999px;font-weight:500}
#wfMain .cb-integration-card{position:relative;width:100%;min-width:0;text-align:left;font-family:inherit;color:var(--text);padding:12px 12px 12px 18px;background:color-mix(in srgb,var(--bg-card) 57%,transparent);border:1px solid color-mix(in srgb,var(--text) 16%,transparent);border-radius:12px;backdrop-filter:blur(9px) saturate(.85);-webkit-backdrop-filter:blur(9px) saturate(.85)}
#wfMain .cb-integration-card::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;background:#55d9cc;box-shadow:0 0 12px 2px #55d9cc44;border-radius:3px}
#wfMain .cb-integration-card:hover{border-color:var(--primary)}.cb-integration-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
#wfMain .cb-scroll>[data-cb-anchor="checks"]{margin-top:20px;padding-top:0}
#wfMain[data-atmosphere="marketing"] .cb-marketing-deck{margin-top:20px;padding-top:0}
#wfMain .cb-scroll{padding-bottom:88px}
.cb-resources{margin:22px 0 12px}.cb-resource-row{display:flex;justify-content:flex-start;gap:14px;flex-wrap:wrap}
.cb-resource{display:flex;flex-direction:column;align-items:center;gap:6px;width:76px;color:var(--text-2);font-size:10px;line-height:1.4;text-align:center;text-decoration:none}
.cb-resource-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--bg-card) 65%,transparent);border:1px solid var(--border)}.cb-resource-icon img{object-fit:contain}.cb-resource:hover{color:var(--text)}
#wfMain .cb-plaque-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:auto;margin-left:auto}
#wfMain .cb-cmd,#wfMain .cb-chip,#wfMain .lgate-btn,#wfMain .cb-add{display:inline-flex;align-items:center;justify-content:center;min-height:28px;box-sizing:border-box;padding:4px 10px!important;border-radius:999px;font-size:12px!important;line-height:18px;gap:4px;background:color-mix(in srgb,var(--bg-card) 57%,transparent);border:1px solid color-mix(in srgb,var(--text) 16%,transparent);color:var(--text-2);margin:0;box-shadow:none}
@media(max-width:520px){.ig-grid{grid-template-columns:minmax(0,1fr)}.ig-card .ig-head{grid-template-columns:22px minmax(0,1fr) auto}.cb-legal-grid{grid-template-columns:minmax(0,1fr)}#wfMain .cb-plaque-actions{order:3;max-width:100%}}

@media(max-width:700px){#wfMain .keeper-tools-grid .ig-head{grid-template-columns:minmax(0,1fr);gap:5px}#wfMain .keeper-tools-grid .ig-badge{justify-self:start}#wfMain .keeper-tools-grid .ig-name{font-size:11px}#wfMain .keeper-tools-grid .ig-desc{display:none}#wfMain .keeper-tools-grid .cb-integration-card{padding:10px}}

/* Compact resource fronts; method highlights stay inside the integration. */
#wfMain .ig-card{min-height:0;height:auto;padding:9px 12px;border-radius:12px}
#wfMain .ig-card .ig-head{grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:6px;margin-bottom:4px}
#wfMain .ig-card .ig-ico{font-size:17px;line-height:20px}
#wfMain .ig-card .ig-name{font-size:12px;line-height:18px}
#wfMain .ig-card .ig-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:15px;margin:0}
#wfMain .cb-integration-card::before{content:none;display:none}
#wfMain .cb-legal-grid{align-items:start;gap:8px}
#wfMain .cb-scroll:has(>.cb-legal-tools){display:flex;flex-direction:column}
#wfMain .cb-scroll>[data-cb-anchor="checks"],#wfMain .cb-scroll>.cb-legal-tools,#wfMain[data-atmosphere="marketing"] .cb-scroll>.cb-marketing-deck{margin-top:auto;padding-top:36px}
#wfMain .finance-preview{display:flex;flex-direction:column;min-height:calc(100vh - 140px);padding-bottom:80px}
#wfMain .finance-preview>.cb-legal-tools{margin-top:auto;padding-top:36px}
#wfMain .finance-preview-offer{margin-top:28px;margin-bottom:28px}
@media(max-width:700px){#wfMain .keeper-tools-grid{grid-template-columns:minmax(0,1fr)}#wfMain .keeper-tools-grid .ig-head{grid-template-columns:20px minmax(0,1fr) auto}#wfMain .keeper-tools-grid .ig-badge{justify-self:end}}

/* Equal two-line descriptions in department/catalog cards; keeper unchanged. */
#wfMain .cb-legal-grid .ig-desc,#wfMain .ig-grid .ig-desc{height:30px;min-height:30px}
#wfMain .cb-legal-grid .ig-name,#wfMain .ig-grid .ig-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#wfMain .cb-scroll{padding-bottom:42px}
@media(max-width:700px){#wfMain .cb-scroll{padding-bottom:58px}}
#wfMain .finance-preview{padding-bottom:50px}

/* Department trash hidden by CEO; personal-space trash remains available. */
#wfMain #cbTrash{display:none!important}

/* Hide the remaining workspace bin; reduce portrait source spacing. */
#wfMain .sp-trash{display:none!important}
@media(max-width:700px) and (orientation:portrait){#wfMain>#keeperOpenTools{padding-top:60px}}

@media(max-width:820px) and (orientation:portrait){
  html.korpus-immersive #mtWallet{flex:0 0 auto;min-width:0;max-width:none}
  html.korpus-immersive #mtWallet b{white-space:nowrap;max-width:none;overflow:visible;text-overflow:clip}
  html.korpus-immersive .mt-space .mt-name{min-width:0;flex:1 1 0}
  html.korpus-immersive .mt-name .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  html.korpus-immersive .wallet-dd{box-sizing:border-box;max-width:calc(100vw - 16px)!important;min-width:0!important}
}

/* The recognizer chip shares the compact header and model menu. */
#uSttBtn{border:0;background:transparent;font:inherit;min-width:0}
#uSttBtn[hidden],#uSttBtn~.u-sep[hidden]{display:none}
#uSttBtn b{max-width:150px;overflow:hidden;text-overflow:ellipsis}
#sttDd{max-width:calc(100vw - 16px)}
#sttDd .stt-option{border:0;background:transparent;color:inherit;font:inherit;text-align:left;width:100%}
#sttDd .stt-option:hover{background:var(--bg-0)}
@media(max-width:700px){#uSttBtn{gap:3px;padding:3px}#uSttBtn b{max-width:68px;font-size:11px}#uSttBtn>svg:first-child{width:12px}}

#mtSttBtn[hidden],.mt-sep[hidden]{display:none!important}
#mtSttBtn{flex:0 1 auto;min-width:0}
#mtSttBtn b{max-width:66px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Department previews share the workspace surface; locks never grant access. */
#wfMain>.section-preview.department-preview{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;width:100%;max-width:none;min-height:100%;margin:0;padding:20px 12px 14px;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;line-height:1.4}
.department-preview .preview-heading h2{margin:0 0 8px;font-size:clamp(19px,2vw,25px);line-height:1.25;color:var(--text)}
.department-preview .preview-heading p{margin:0 0 8px;max-width:800px;color:var(--text-2);font-size:13px}
.department-preview .section-preview-status{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:3px 9px;font-size:11px;color:var(--text-2)}
.department-preview .preview-cabinet{opacity:.72}
.department-preview .cb-section-nav{margin:0 0 12px;display:flex;flex-wrap:wrap;gap:6px}
.department-preview .cb-section-nav span{border:1px solid var(--border);border-radius:999px;padding:4px 9px;font-size:12px}
.department-preview .preview-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.department-preview .preview-features p{margin:6px 0 0;font-size:12px;color:var(--text-2)}
.department-preview .preview-lock{display:flex;align-items:center;flex:1;min-height:66px;padding:4px 10px;color:var(--text-muted);opacity:.38}
.department-preview .preview-lock .nav-lock{display:block;width:56px;height:56px;flex:none;stroke-width:1.2;margin:0}
.department-preview .preview-bottom{margin-top:auto}
.department-preview .preview-bottom .cb-sec-t{margin:0 0 8px}
.department-preview .preview-bottom .ig-card{cursor:initial;opacity:.72;min-width:0}
.department-preview .preview-bottom .ig-card p{font-size:12px;color:var(--text-2);margin:6px 0 0}
.department-preview .preview-finance-offer{font-size:clamp(17px,2vw,23px);max-width:760px;margin:4px 0 8px}
.department-preview .preview-finance-offer+p{font-size:13px;color:var(--text-2);margin:0}
.department-preview [data-preview-integration]{pointer-events:none}
/* One action row for custom notebooks and folders in every workspace. */
#wfMain .sp-tile-actions,#wfMain .cb-acts{position:static;display:flex;align-items:center;justify-content:flex-end;gap:2px;margin-top:8px;margin-left:auto;width:100%;order:5}
#wfMain .sp-tile-actions .sp-item-act,#wfMain .cb-acts .sp-item-act{position:static;display:grid;flex:0 0 32px;width:32px;height:32px;margin:0;opacity:.72;border-radius:8px}
#wfMain .sp-tile-actions .sp-item-act:hover,#wfMain .cb-acts .sp-item-act:hover{opacity:1}
#wfMain .sp-folder-pill{padding-top:12px}
#wfMain .sp-pill.has-actions,#wfMain .cb-folder,#wfMain .cb-doc{display:flex;flex-direction:column;padding-right:12px;min-width:0}
#wfMain .cb-card-hd{min-width:0}
#wfMain .cb-card-hd b,#wfMain .sp-nm{overflow-wrap:anywhere;min-width:0}
#wfMain .cb-acts+.cb-card-hd{padding-right:0}
@media(max-width:600px){
 #wfMain>.section-preview.department-preview{padding:12px 8px;gap:8px}
 .department-preview .preview-heading h2{font-size:19px;margin-bottom:5px}
 .department-preview .preview-heading p{font-size:12px;line-height:1.35}
 .department-preview .cb-legal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .department-preview .preview-bottom .ig-card{padding:8px;min-height:0}
 #wfMain .department-preview .ig-name{font-size:12px}#wfMain .department-preview .ig-badge{font-size:8px;padding:2px 4px}
 #wfMain .department-preview .ig-head{display:grid;grid-template-columns:18px minmax(0,1fr);gap:2px 4px}#wfMain .department-preview .ig-name{white-space:normal;overflow:visible;text-overflow:clip;font-size:11px;line-height:14px}#wfMain .department-preview .ig-badge{grid-column:2;justify-self:start}#wfMain .department-preview .ig-desc{font-size:11px;line-height:1.3}
 .department-preview .preview-lock{min-height:50px;padding:0 6px}.department-preview .preview-lock .nav-lock{width:48px;height:48px}
 #wfMain .department-preview[data-preview="integrations"] .ig-desc{display:none}
 #wfMain .department-preview .preview-features p{font-size:11px;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 #wfMain .department-preview .ig-desc{-webkit-line-clamp:1}
 #wfMain .department-preview .preview-bottom .ig-card{padding:7px 8px}
 #wfMain .department-preview .preview-features .sp-pill{padding:8px}
 #wfMain .department-preview .preview-features b{font-size:12px}
 #wfMain .sp-tile-actions .sp-item-act,#wfMain .cb-acts .sp-item-act{width:36px;height:36px;flex-basis:36px}
}

.department-preview .preview-unavailable{grid-column:1/-1;margin:4px 0 0;font-size:11px;color:var(--text-2)}

/* Workspace tile hierarchy: icon + title, compact actions, metadata footer. */
#wfMain .sp-pill:has(>.sp-emo){display:grid;grid-template-columns:22px minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:8px;row-gap:6px;min-width:0;min-height:112px;padding:12px}
#wfMain .sp-pill>.sp-emo{grid-column:1;grid-row:1;font-size:18px;line-height:1.4;margin:0;align-self:start}
#wfMain .sp-pill>.sp-nm{grid-column:2;grid-row:1;white-space:normal;overflow:visible;text-overflow:clip;word-break:normal;overflow-wrap:anywhere;line-height:1.4;align-self:start}
#wfMain .sp-pill>.sp-tile-actions{grid-column:1/-1;grid-row:2;justify-content:center;order:initial;width:auto;margin:0;gap:4px}
#wfMain .sp-pill>.sp-tile-footer,#wfMain .sp-pill>.sp-sub{grid-column:1/-1;grid-row:3;align-self:end;margin-top:0}
#wfMain .sp-tile-actions .sp-item-act,#wfMain .cb-acts .sp-item-act{width:32px;height:32px;flex-basis:32px}
#wfMain .sp-tile-actions svg,#wfMain .cb-acts svg{width:14px;height:14px}
#wfMain .cb-acts{order:1;justify-content:center;margin:6px 0}
#wfMain .cb-card-hd{order:0}#wfMain .cb-card-meta{order:2;margin-top:auto}
.department-preview{cursor:pointer}
.department-preview .preview-heading,.department-preview .preview-cabinet,.department-preview .preview-bottom{opacity:.7}
.department-preview .preview-bottom .ig-card{opacity:1}
.department-preview .preview-lock{justify-content:center;opacity:.6;min-height:90px}
.department-preview .preview-lock .nav-lock{width:84px;height:84px}
.subscription-explanation{max-width:min(420px,calc(100vw - 32px));box-sizing:border-box;background:var(--bg-card,#222a33);color:var(--text,#eee);border:1px solid var(--border,#58616c);border-radius:18px;padding:24px;box-shadow:0 20px 70px #0006}
.subscription-explanation::backdrop{background:#0007}
.subscription-explanation h2{font-size:20px;margin:0 0 12px}.subscription-explanation p{line-height:1.5}
.subscription-explanation-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:20px}.subscription-explanation a{color:var(--text,#eee)}
@media(max-width:600px){.department-preview .preview-lock .nav-lock{width:72px;height:72px}.department-preview .preview-lock{min-height:76px}#wfMain .sp-pill:has(>.sp-emo){column-gap:6px;padding:10px}}

/* Workspace tile hierarchy: title, compact actions, footer. */
#wfMain .sp-pill:has(>.sp-emo){display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(28px,1fr) auto;column-gap:8px;row-gap:5px;min-height:112px;box-sizing:border-box;padding:13px 14px}
#wfMain .sp-pill>.sp-emo{grid-column:1;grid-row:1;margin:0;font-size:19px;line-height:1.35;align-self:start}
#wfMain .sp-pill>.sp-nm{grid-column:2;grid-row:1;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;line-height:1.35;align-self:start}
#wfMain .sp-pill>.sp-tile-footer,#wfMain .sp-pill>.sp-sub{grid-column:1/-1;grid-row:3;align-self:end;margin:0}
#wfMain .sp-tile-actions,#wfMain .cb-acts{grid-column:1/-1;grid-row:2;order:2;align-self:center;justify-content:center;margin:0;width:100%;gap:3px}
#wfMain .sp-tile-actions .sp-item-act,#wfMain .cb-acts .sp-item-act{width:28px;height:28px;flex-basis:28px;border-radius:7px}
#wfMain .sp-tile-actions .sp-item-act svg,#wfMain .cb-acts .sp-item-act svg{width:14px;height:14px}
#wfMain .cb-folder,#wfMain .cb-doc{min-height:112px;box-sizing:border-box;padding:13px 14px;gap:5px}
#wfMain .cb-folder>.cb-card-hd,#wfMain .cb-doc>.cb-card-hd{order:1;margin:0;align-items:flex-start}
#wfMain .cb-folder>.cb-card-hd b,#wfMain .cb-doc>.cb-card-hd b{white-space:normal;overflow:visible;overflow-wrap:break-word;line-height:1.35}
#wfMain .cb-folder>.cb-card-meta,#wfMain .cb-doc>.cb-card-meta{order:3;margin-top:auto}
#wfMain .cb-folder>.cb-acts,#wfMain .cb-doc>.cb-acts{margin:auto 0}
/* Closed departments remain readable and explain the required subscription. */
.department-preview>.preview-heading,.department-preview>.preview-bottom{opacity:.7}
.department-preview>.preview-cabinet{opacity:.504}
.department-preview .preview-lock{justify-content:center;opacity:.6}
.department-preview .preview-lock .nav-lock{width:84px;height:84px}
.department-preview{cursor:pointer}
.department-preview:focus-visible{outline:2px solid var(--sel);outline-offset:-2px}
.preview-plan-dialog{box-sizing:border-box;max-width:calc(100vw - 32px);width:360px;padding:22px;border:1px solid var(--border);border-radius:16px;background:var(--bg-card);color:var(--text);box-shadow:0 12px 48px #0005}
.preview-plan-dialog::backdrop{background:#0005}
.preview-plan-dialog h3{margin:0 0 12px;font-size:18px}.preview-plan-dialog p{margin:0 0 18px;line-height:1.5}
.preview-plan-dialog button{display:block;margin-left:auto;padding:7px 16px;border:1px solid var(--border);border-radius:9px;background:var(--bg-0);color:var(--text);cursor:pointer}
@media(max-width:600px){
 #wfMain .sp-pill:has(>.sp-emo),#wfMain .cb-folder,#wfMain .cb-doc{padding:9px 10px;min-height:108px}
 #wfMain .sp-pill>.sp-emo{font-size:16px}
 .department-preview .preview-lock .nav-lock{width:72px;height:72px}
}

/* User notebook/folder actions: stable corners, quiet metadata. */
#wfMain .sp-pill.has-actions{position:relative;min-height:112px}
#wfMain .sp-pill.has-actions>.sp-tile-actions,#wfMain .sp-pill.has-actions>.cb-acts{display:contents}
#wfMain .sp-pill.has-actions .sp-item-act{position:absolute;display:grid;width:28px;height:28px;margin:0;z-index:2}
#wfMain .sp-pill.has-actions [data-book-action="rename"],#wfMain .sp-pill.has-actions .sp-folder-ren,#wfMain .sp-pill.has-actions [data-cb-tile-rename],#wfMain .sp-pill.has-actions [data-cb-ren-folder]{top:6px;right:6px;bottom:auto;left:auto}
#wfMain .sp-pill.has-actions [data-book-action="trash"],#wfMain .sp-pill.has-actions .sp-folder-trash,#wfMain .sp-pill.has-actions [data-cb-tile-trash],#wfMain .sp-pill.has-actions [data-cb-trash-folder]{bottom:6px;right:6px;top:auto;left:auto}
#wfMain .sp-pill.has-actions [data-book-action="move"],#wfMain .sp-pill.has-actions [data-cb-move-doc]{bottom:6px;left:6px;top:auto;right:auto}
#wfMain .sp-pill.has-actions>.sp-nm,#wfMain .sp-pill.has-actions>.cb-card-hd{padding-right:25px}
#wfMain .sp-pill.has-actions[data-kind="notebook"]>.sp-tile-footer,#wfMain .cb-doc>.cb-card-meta{padding:0 30px;min-height:16px;text-align:center;justify-content:center}
#wfMain .sp-folder-pill>.sp-folder-sub{position:absolute;left:12px;right:42px;bottom:10px;display:flex;justify-content:flex-start;gap:6px;margin:0}
#wfMain .sp-folder-pill .sp-folder-chev{order:-1;flex:0 0 16px;width:16px;height:16px;margin:0}
#wfMain .cb-folder>.cb-card-meta{padding-right:30px}
@media(max-width:600px){#wfMain .sp-pill.has-actions .sp-item-act{width:32px;height:32px}#wfMain .sp-pill.has-actions>.sp-nm,#wfMain .sp-pill.has-actions>.cb-card-hd{padding-right:29px}}

/* Отделяем заголовки источников от карточек, включая мобильный кабинет. */
#wfMain .cb-sec-t:has(+.cb-legal-grid),#wfMain .cb-marketing-deck>.cb-sec-t,#wfMain #keeperOpenTools>.cb-sec-t,.department-preview .preview-bottom .cb-sec-t{margin-bottom:20px}

/* Compact recognizer label: provider only; full model lives in the menu. */
@media(max-width:820px) and (orientation:portrait){#uSttBtn,#sttDd,#sttDd+.u-sep,#mtSttBtn,#mtSttBtn+.mt-sep{display:none!important}}

/* Shared stream controls: emoji, heading, stop, copy on one row. */
.stream-bubble-header{display:flex;align-items:center;gap:6px}
.stream-bubble-headtext{min-width:0;overflow-wrap:anywhere}
.stream-cancel-btn{margin-left:auto;flex:0 0 28px;width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;line-height:1}
.stream-cancel-btn:hover,.stream-cancel-btn:focus-visible{color:var(--text);background:var(--bg-elev)}
.stream-cancel-btn:disabled{opacity:.35;cursor:wait}
.stream-bubble>.bubble-copy-btn{top:38px;right:6px;opacity:.55}
.stream-bubble>.stream-bubble-header>.stream-bubble-headtext{flex:1}
.stream-bubble-header>.bubble-copy-btn{position:static;flex:0 0 28px;width:28px;height:28px;opacity:.55;background:transparent}
.stream-bubble-header>.stream-cancel-btn{margin-left:0}

.finance-chat-card[hidden]{display:none!important}.finance-chat-actions{display:flex;gap:8px;flex-wrap:wrap}.finance-chat-actions button{padding:8px 12px;cursor:pointer}.finance-chat-card pre{white-space:pre-wrap;overflow-wrap:anywhere}
