/* TextProst — стиль DN SIGNAL: тёмно-синяя плита, голубое свечение, оранжевый акцент. Светлая тема — бумага. */
:root{
  --bg:#0b111b;--bg-2:#0e1520;--panel:#131b28;--panel-2:#1a2435;--pop:#141c29;
  --line:rgba(190,215,255,.08);--line-2:rgba(190,215,255,.14);
  --text:#e9eef6;--text-2:#b3bdcc;--muted:#8290a6;
  --accent:#ffa24a;--accent-ink:#1c1206;--accent-soft:rgba(255,162,74,.13);--accent-line:rgba(255,162,74,.38);
  --cool:#5fd4ff;--cool-soft:rgba(95,212,255,.1);--danger:#ff7a6b;
  --f-ui:'Onest',ui-sans-serif,system-ui,sans-serif;--f-mono:'JetBrains Mono',ui-monospace,monospace;
  --side:264px;
  --dots-floor:.35; /* сколько точек остаётся внизу экрана: 0 — гаснут, 1 — как вверху */
  --dots-alpha:.55; /* яркость сетки точек */
  --glow:radial-gradient(70% 45% at 30% 0%,rgba(95,212,255,.07),transparent 70%),linear-gradient(180deg,#141c29 0,#0b111b 520px,#090d14 100%);
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#f3f1ea;--bg-2:#ecE9e0;--panel:#fbfaf6;--panel-2:#efece3;--pop:#fffefa;
  --line:rgba(30,28,20,.08);--line-2:rgba(30,28,20,.15);
  --text:#1b1a16;--text-2:#45433b;--muted:#85827a;
  --accent:#c9740a;--accent-ink:#fff8ec;--accent-soft:rgba(201,116,10,.1);--accent-line:rgba(201,116,10,.35);
  --cool:#1f6f9a;--cool-soft:rgba(31,111,154,.08);--danger:#c8402f;
  --glow:linear-gradient(180deg,#f6f4ee 0,#f3f1ea 100%);
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--glow) fixed;background-color:var(--bg);color:var(--text);font-family:var(--f-ui);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(var(--line-2) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,var(--dots-floor)) 55%,rgba(0,0,0,var(--dots-floor)) 100%);opacity:var(--dots-alpha)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
svg{width:18px;height:18px;flex:none}
kbd{font:11px var(--f-mono);color:var(--muted);border:1px solid var(--line-2);border-radius:5px;padding:1px 5px;margin-left:auto}
.mono{font-family:var(--f-mono);font-size:12px;letter-spacing:.02em}
.muted{color:var(--muted)}
.small{font-size:11.5px}
:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:14px}
.btn:hover{filter:brightness(1.07)}
.btn.ghost{background:transparent;color:var(--text-2);border:1px solid var(--line-2);font-weight:500}
.btn.ghost:hover{color:var(--text);background:var(--panel-2)}
.btn.danger{color:var(--danger)}
.btn.big{padding:12px 20px;font-size:15px;border-radius:12px}
[hidden]{display:none!important}

/* ---------- раскладка ---------- */
.app{position:relative;z-index:1;display:grid;grid-template-columns:var(--side) minmax(0,1fr);height:100vh;height:100dvh}
.side{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(8px)}
.main{min-width:0;overflow:auto;display:flex;flex-direction:column}
.scrim{display:none}

/* ---------- боковая панель ---------- */
.sbws{padding:10px 8px 4px}
.sbwsb{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border-radius:9px;text-align:left}
.sbwsb:hover{background:var(--panel-2)}
.sbwsb b{flex:1;min-width:0;font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbwsb .mono{color:var(--muted);font-size:10px}
.wsico{width:26px;height:26px;flex:none;border-radius:7px;display:grid;place-items:center;font:700 14px var(--f-ui);color:var(--accent-ink);background:linear-gradient(135deg,#ffa24a,#ffcf8a)}
.sbnav,.sbfoot{display:flex;flex-direction:column;gap:1px;padding:4px 8px}
.sbfoot{border-top:1px solid var(--line);padding:8px}
.sbi{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;color:var(--text-2);font-size:14px;text-align:left}
.sbi:hover,.sbi.on{background:var(--panel-2);color:var(--text)}
.sbi svg{width:17px;height:17px;color:var(--muted)}
.sbi .mono{margin-left:auto}
.sbsec{display:flex;align-items:center;justify-content:space-between;margin:10px 8px 2px;padding:3px 4px 3px 8px;border-radius:7px}
.sbsec .mono{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.sbsec .tiadd{opacity:1}
.sbempty{padding:6px 12px}
.tree{flex:1;min-height:0;overflow:auto;padding:0 8px 12px}
.ti{position:relative;display:flex;align-items:center;gap:1px;padding-left:calc(var(--d,0) * 14px);border-radius:8px}
.ti:hover{background:var(--panel-2)}
.ti.on{background:var(--accent-soft)}
.ti.on .tilab b{color:var(--accent)}
.ti.dragging{opacity:.4}
.ti.dinside,.sbsec.dinside{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}
.ti.dbefore::before,.ti.dafter::after{content:"";position:absolute;left:calc(var(--d,0) * 14px + 8px);right:4px;height:2px;border-radius:2px;background:var(--accent);pointer-events:none}
.ti.dbefore::before{top:-1px}
.ti.dafter::after{bottom:-1px}
.titog{width:22px;height:26px;flex:none;color:var(--muted);font-size:11px;display:grid;place-items:center;border-radius:6px}
.titog[data-empty]{font-size:9px;opacity:.5;cursor:default}
.titog:not([data-empty]):hover{background:var(--line-2)}
.tilab{flex:1;min-width:0;display:flex;align-items:center;gap:7px;padding:5px 2px;text-align:left}
.tiico{flex:none;width:20px;text-align:center}
.tilab b{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-2)}
.ti:hover .tilab b{color:var(--text)}
.tiadd{width:24px;height:24px;flex:none;border-radius:6px;color:var(--muted);opacity:0;font-size:16px;line-height:1}
.ti:hover .tiadd{opacity:1}
.tiadd:hover{background:var(--line-2);color:var(--text)}

/* ---------- верхняя полоса ---------- */
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 14px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px)}
.topmenu{display:none;padding:6px;border-radius:8px;color:var(--text-2)}
.crumbs{display:flex;align-items:center;gap:2px;min-width:0;flex:1;overflow:hidden;font-size:14px}
.crumbs i{color:var(--muted);font-style:normal;padding:0 2px}
.crumbs>button,.crumbs>a,.crumbs>span{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:7px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:240px}
.crumbs>button:hover,.crumbs>a:hover{background:var(--panel-2);color:var(--text)}
.crumbs>:last-child{color:var(--text)}
.save{font-size:11.5px;color:var(--muted);white-space:nowrap}
.save.warn{color:var(--accent)}
.topacts{display:flex;align-items:center;gap:4px}
.tbtn{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:8px;color:var(--text-2);font-size:14px}
.tbtn:hover{background:var(--panel-2);color:var(--text)}
.tbtn.icon{padding:6px}
.dotlive{width:7px;height:7px;border-radius:50%;background:var(--cool);box-shadow:0 0 0 3px var(--cool-soft)}

/* ---------- всплывающие окна ---------- */
.pop{position:fixed;z-index:40;border-radius:12px;border:1px solid var(--line-2);background:var(--pop);box-shadow:0 18px 40px rgba(0,0,0,.4);padding:6px}
.pop.left{right:auto!important}
.pop.menu{min-width:220px;display:flex;flex-direction:column}
.pop.menu>p{padding:6px 9px 4px;font-size:11.5px}
.pop.menu button{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:7px;text-align:left;font-size:14px}
.pop.menu button:hover{background:var(--panel-2)}
.pop.menu svg{color:var(--muted);width:16px;height:16px}
.pop hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.pop .danger,.pop .danger svg{color:var(--danger)}
.pop.share{width:min(380px,calc(100vw - 16px));padding:16px;display:flex;flex-direction:column;gap:12px}
.poprow{display:flex;gap:14px;align-items:flex-start}
.poprow b{font-weight:600;font-size:14.5px}
.poprow p{font-size:13px;margin-top:3px}
.share>p{font-size:13px}
.copyrow{display:flex;gap:6px}
.copyrow input{flex:1;min-width:0;padding:7px 10px;border-radius:9px;border:1px solid var(--line-2);background:var(--bg-2);font:12px var(--f-mono);color:var(--text-2);outline:none}
.popl{color:var(--cool);font-size:12px}
.sw{position:relative;flex:none;width:38px;height:22px;margin-top:2px}
.sw input{position:absolute;opacity:0;inset:0;cursor:pointer;z-index:1}
.sw span{position:absolute;inset:0;border-radius:22px;background:var(--line-2);transition:background .15s}
.sw span::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.sw input:checked+span{background:var(--accent)}
.sw input:checked+span::after{transform:translateX(16px)}
.pop.emoji{display:grid;grid-template-columns:repeat(6,40px);gap:2px;right:auto!important}
.pop.emoji button{font-size:21px;height:40px;border-radius:8px}
.pop.emoji button:hover{background:var(--panel-2)}

/* ---------- страница ---------- */
.page{position:relative;width:100%;max-width:820px;margin:0 auto;padding:28px 64px 120px}
.pgicon{display:inline-block;font-size:56px;line-height:1;padding:6px;border-radius:12px;margin-left:-6px}
button.pgicon:hover{background:var(--panel-2)}
.pgtitle{font:700 38px/1.18 var(--f-ui);letter-spacing:-.01em;margin:10px 0 18px;outline:none;overflow-wrap:anywhere}
.pgtitle:empty::before{content:attr(data-ph);color:var(--muted);opacity:.55}
.pgmeta{margin-top:36px;font-size:11px;color:var(--muted)}
.kids{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:30px;padding-top:14px;border-top:1px solid var(--line)}
.kids .mono{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
.kids>button,.kids>a{display:flex;gap:8px;align-items:center;font-size:15px;padding:4px 6px;margin-left:-6px;border-radius:7px;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px}
.kids>button:hover,.kids>a:hover{background:var(--panel-2)}
.empty{flex:1;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted);padding:40px}
.h2{font-size:26px;font-weight:650;margin:0 0 6px}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 0;border-top:1px solid var(--line)}
.row>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}
.row .btn{padding:6px 11px;font-size:13px}
.back{margin-top:20px}
.verview{margin-top:18px;padding:18px;border:1px dashed var(--line-2);border-radius:14px}
.set{margin-top:22px;padding:18px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--panel) 60%,transparent);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.set h3{font-size:16px;font-weight:600}
.fld{display:flex;flex-direction:column;gap:5px;width:100%;max-width:380px}
.fld .mono{font-size:11.5px;color:var(--muted)}
.fld input{padding:8px 11px;border-radius:9px;border:1px solid var(--line-2);background:var(--bg-2);outline:none}
.fld input:focus{border-color:var(--accent-line)}
.seg{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--bg-2);border:1px solid var(--line)}
.seg button{padding:6px 14px;border-radius:8px;font-size:13.5px;color:var(--text-2)}
.seg button.on{background:var(--panel-2);color:var(--text)}
.acct{display:flex;align-items:center;gap:12px}
.acct img{width:36px;height:36px;border-radius:50%}
.acct div{display:flex;flex-direction:column}

/* ---------- блоки (из Нотекса DN SIGNAL) ---------- */
.nxblocks{position:relative;display:flex;flex-direction:column;gap:2px;font-size:16px;line-height:1.6;min-height:120px;padding-bottom:40px;cursor:text}
.nxblocks.ro{min-height:0;padding-bottom:0;cursor:auto}
.nxb{position:relative;display:flex;align-items:flex-start;gap:8px;padding:2px 0 2px 2px;border-radius:6px;cursor:auto}
.nxb.dragging{opacity:.35}
.nxdropline{position:absolute;left:0;right:0;height:3px;border-radius:3px;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);pointer-events:none;z-index:4}
body.nxdragging{cursor:grabbing;user-select:none}
.nxh{position:absolute;left:-28px;top:3px;width:22px;height:26px;border-radius:6px;color:var(--muted);font-size:11px;letter-spacing:-2px;opacity:0;cursor:grab;touch-action:none}
.nxb:hover>.nxh,.nxb:focus-within>.nxh{opacity:.8}
.nxh:hover{background:var(--panel-2)}
.nxc{flex:1;min-width:0;outline:none;overflow-wrap:anywhere;white-space:pre-wrap;padding:2px 0}
.nxc:empty::before{content:attr(data-ph);color:var(--muted);opacity:0;pointer-events:none}
.nxb:focus-within .nxc:empty::before{opacity:.55}
.nxblocks>.nxb:only-child .nxc:empty::before{opacity:.45}
.nxc a{color:var(--cool);text-decoration:underline;text-underline-offset:3px}
.nxc code{font:13.5px var(--f-mono);background:var(--bg-2);border:1px solid var(--line);color:var(--accent);border-radius:5px;padding:1px 5px}
.t-h1 .nxc{font-size:30px;font-weight:700;line-height:1.25;margin-top:18px}
.t-h2 .nxc{font-size:23px;font-weight:650;line-height:1.3;margin-top:12px}
.t-h3 .nxc{font-size:18.5px;font-weight:650;margin-top:8px}
.t-h1>.nxh{top:22px}.t-h2>.nxh{top:14px}.t-h3>.nxh{top:9px}
.nxdot,.nxnum{flex:none;min-width:18px;color:var(--text-2);padding-top:2px;text-align:right}
.nxchk{flex:none;width:17px;height:17px;margin-top:6px;accent-color:var(--accent);cursor:pointer}
.t-todo.done .nxc{color:var(--muted);text-decoration:line-through}
.t-quote{border-left:3px solid var(--text-2);padding-left:14px;margin:4px 0}
.t-quote .nxc{font-size:17px;color:var(--text-2)}
.t-callout{background:var(--accent-soft);border:1px solid var(--accent-line);padding:10px 12px;margin:4px 0;border-radius:10px}
.nxco{flex:none;padding-top:2px}
.t-code{background:var(--bg-2);border:1px solid var(--line);padding:12px 14px;margin:4px 0;border-radius:10px}
.t-code .nxc{font:13.5px/1.55 var(--f-mono)}
.t-divider{cursor:default}
.t-divider hr{flex:1;border:0;border-top:1px solid var(--line-2);margin:14px 0}
.t-image{margin:8px 0}
.nximg{margin:0;flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.nximgb{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--bg-2);cursor:zoom-in;max-width:100%;align-self:flex-start}
.nximgb img{display:block;max-width:100%;max-height:70vh;width:auto;height:auto}
.nximg figcaption{font-size:13px;color:var(--muted);padding:0 2px}
.t-link{margin:6px 0}
.nxlinkc{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line-2);border-radius:12px;background:var(--bg-2)}
.nxlico{font-size:20px;flex:none}
.nxlinkt{flex:1;min-width:0;display:flex;flex-direction:column}
.nxlinkt .nxc{font-weight:600;padding:0}
.nxlinkt .mono{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nxlinko{flex:none;font-size:13px;color:var(--cool);padding:6px 10px;border-radius:8px;border:1px solid color-mix(in srgb,var(--cool) 40%,transparent)}
.nxlinko:hover{background:var(--cool-soft)}
.nxblocks.drop{outline:2px dashed var(--accent);outline-offset:6px;border-radius:8px}
.nxmenu{position:absolute;z-index:30;top:100%;left:0;width:250px;max-height:340px;overflow:auto;display:flex;flex-direction:column;padding:6px;border-radius:12px;border:1px solid var(--line-2);background:var(--pop);box-shadow:0 18px 40px rgba(0,0,0,.4)}
.nxmenu.up{top:auto;bottom:100%}
.nxmhead{padding:4px 9px 2px;font-size:11px;color:var(--muted)}
.nxmenu button{display:flex;align-items:center;gap:10px;padding:6px 9px;border-radius:7px;text-align:left;font-size:14px}
.nxmenu button .mono{width:26px;height:24px;flex:none;display:grid;place-items:center;border-radius:6px;border:1px solid var(--line);color:var(--muted);font-size:11.5px}
.nxmenu button.on,.nxmenu button:hover{background:var(--panel-2)}
.nxmenu hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.nxmenu .danger{color:var(--danger)}

/* ---------- поиск ---------- */
.modal{position:fixed;inset:0;z-index:50;background:rgba(4,8,14,.55);backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px}
.sbox{width:min(620px,100%);max-height:70vh;display:flex;flex-direction:column;border-radius:16px;border:1px solid var(--line-2);background:var(--pop);box-shadow:0 30px 60px rgba(0,0,0,.5);overflow:hidden}
.sqrow{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.sqrow svg{color:var(--muted)}
.sqrow input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:17px}
.slist{overflow:auto;padding:6px}
.shead{padding:6px 10px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.sres{display:flex;gap:10px;align-items:flex-start;width:100%;padding:9px 10px;border-radius:9px;text-align:left}
.sres.on,.sres:hover{background:var(--panel-2)}
.sres .tiico{padding-top:1px}
.srt{display:flex;flex-direction:column;min-width:0;gap:1px}
.srt b{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srt .mono{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srs{font-size:13px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.srs mark{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 2px}
.sempty{padding:20px;text-align:center}

/* ---------- прочее ---------- */
.lightbox{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.85);display:grid;place-items:center;cursor:zoom-out;padding:20px}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px}
.toast{position:fixed;left:50%;bottom:22px;z-index:70;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:10px 16px;border-radius:11px;background:var(--text);color:var(--bg);font-size:14px;font-weight:500;transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px)}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- вход и публичная страница ---------- */
body.solo{position:relative}
.gate{position:relative;z-index:1;max-width:420px;margin:14vh auto 40px;padding:36px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--panel) 80%,transparent)}
.gate h1{font-size:28px;font-weight:700}
.gate .err{color:var(--danger)}
.glyph{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;font:700 30px var(--f-ui);color:var(--accent-ink);background:linear-gradient(135deg,#ffa24a,#ffcf8a);box-shadow:0 12px 30px -10px rgba(255,162,74,.5)}
.pubtop{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:10px 16px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px)}
.made{color:var(--muted);white-space:nowrap}
.made b{color:var(--accent)}
.pub main{position:relative;z-index:1}
.center{text-align:center;padding:60px}

/* ---------- узкий экран ---------- */
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;z-index:30;inset:0 auto 0 0;width:min(300px,86vw);transform:translateX(-102%);transition:transform .2s;background:var(--bg)}
  .app.sideopen .side{transform:none;box-shadow:20px 0 40px rgba(0,0,0,.4)}
  .app.sideopen .scrim{display:block;position:fixed;inset:0;z-index:25;background:rgba(0,0,0,.4)}
  .topmenu{display:grid;place-items:center}
  .page{padding:18px 20px 100px}
  .pgtitle{font-size:30px}
  .pgicon{font-size:46px}
  .nxh{display:none}
  .nxb:focus-within>.nxh{display:grid;place-items:center;left:auto;right:-6px;top:2px;opacity:.9;background:var(--panel-2)}
  .nxb:focus-within .nxmenu{left:auto;right:0}
  .tiadd{opacity:1}
  .save,.sbi kbd{display:none}
  .crumbs>button,.crumbs>span{max-width:150px}
  .crumbs>:not(:last-child):not(i){display:none}
  .crumbs i{display:none}
}

/* ---------- базы данных ---------- */
:root{
  --t-gray:rgba(160,175,195,.16);--t-gray-i:#c3ccd8;--t-brown:rgba(176,124,88,.2);--t-brown-i:#d9ab8a;--t-orange:rgba(255,162,74,.18);--t-orange-i:#ffb874;
  --t-yellow:rgba(240,200,80,.18);--t-yellow-i:#ecd27a;--t-green:rgba(90,200,140,.17);--t-green-i:#86dcae;--t-blue:rgba(95,170,255,.18);--t-blue-i:#93c3ff;
  --t-purple:rgba(165,125,255,.2);--t-purple-i:#c3a7ff;--t-pink:rgba(240,110,170,.18);--t-pink-i:#f5a3c8;--t-red:rgba(255,110,95,.18);--t-red-i:#ff9d91;
}
:root[data-theme="light"]{
  --t-gray:#e9e7e1;--t-gray-i:#55524a;--t-brown:#efe0d6;--t-brown-i:#6e4a33;--t-orange:#fbe3cc;--t-orange-i:#8a4a0b;--t-yellow:#f8eec4;--t-yellow-i:#6f5a0c;
  --t-green:#dcefe2;--t-green-i:#24603d;--t-blue:#dbe8f7;--t-blue-i:#1f4f86;--t-purple:#e8e0f7;--t-purple-i:#553a8c;--t-pink:#f6e0ea;--t-pink-i:#8a2f5a;--t-red:#f8dfdb;--t-red-i:#9a2f22;
}
.tag{display:inline-flex;align-items:center;max-width:100%;padding:1px 8px;border-radius:6px;font-size:13px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--t-gray);color:var(--t-gray-i)}
.c-brown{background:var(--t-brown);color:var(--t-brown-i)}.c-orange{background:var(--t-orange);color:var(--t-orange-i)}.c-yellow{background:var(--t-yellow);color:var(--t-yellow-i)}
.c-green{background:var(--t-green);color:var(--t-green-i)}.c-blue{background:var(--t-blue);color:var(--t-blue-i)}.c-purple{background:var(--t-purple);color:var(--t-purple-i)}
.c-pink{background:var(--t-pink);color:var(--t-pink-i)}.c-red{background:var(--t-red);color:var(--t-red-i)}
.page.wide{max-width:1180px}
.db{margin-top:6px}
.dbbar{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:10px}
.dbtabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;min-width:0}
.dbtab{display:flex;align-items:center;gap:6px;padding:8px 10px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.dbtab .mono{font-size:13px}
.dbtab:hover{color:var(--text)}
.dbtab.on{color:var(--text);border-bottom-color:var(--accent)}
.dbtab.add{font-size:17px;padding:6px 10px}
.dbtools{display:flex;align-items:center;gap:2px;padding:4px 0}
.dbtool{padding:5px 9px;border-radius:7px;font-size:13.5px;color:var(--muted);white-space:nowrap}
.dbtool:hover{background:var(--panel-2);color:var(--text)}
.dbtool.on{color:var(--accent)}
.btn.sm{padding:5px 11px;font-size:13px;border-radius:8px;margin-left:6px}
.tblwrap{overflow-x:auto;border-top:1px solid var(--line);margin:0 -4px;padding:0 4px}
.tbl{border-collapse:collapse;min-width:100%;font-size:14px}
.tbl th,.tbl td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th:last-child,.tbl td:last-child{border-right:0}
.tbl th{font-weight:500;color:var(--muted);padding:0}
.tbl th>button{display:flex;align-items:center;gap:7px;width:100%;padding:7px 10px;white-space:nowrap;color:inherit;font-size:13.5px}
.tbl th>button:not(:disabled):hover{background:var(--panel-2);color:var(--text)}
.tbl th>button:disabled{cursor:default}
.tbl th .mono{font-size:12px;opacity:.8}
.sortm{color:var(--accent)}
.tbl td{padding:7px 10px;min-width:140px;max-width:320px;cursor:pointer;overflow-wrap:anywhere}
.tbl td:hover{background:color-mix(in srgb,var(--panel-2) 55%,transparent)}
.tbl td.ttl{min-width:240px;position:relative;font-weight:500}
.tbl .ttlin{display:flex;gap:8px;align-items:flex-start;padding-right:70px}
.dbopen{position:absolute;right:6px;top:5px;font-size:12px;padding:2px 8px;border-radius:6px;border:1px solid var(--line-2);background:var(--pop);color:var(--text-2);opacity:0}
tr:hover .dbopen,.dbopen:focus-visible{opacity:1}
.dbopen:hover{color:var(--text)}
.tbl td.c-multi{display:table-cell}
.tbl td.c-multi .tag,.pval.c-multi .tag{margin:1px 4px 1px 0}
.tbl td.c-number{text-align:right;font-variant-numeric:tabular-nums}
.tbl .addcol{width:44px}.tbl .addcol button{justify-content:center;font-size:16px}
.tbl td.rowact{min-width:0;width:44px;cursor:default;padding:4px}
.rowact button{opacity:0;width:28px;height:28px;border-radius:6px;color:var(--muted)}
tr:hover .rowact button{opacity:1}
.rowact button:hover{background:var(--panel-2);color:var(--danger)}
.dbchk{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin-top:2px}
.dburl{color:var(--cool);text-decoration:underline;text-underline-offset:3px}
.dbadd{display:flex;align-items:center;gap:6px;width:100%;padding:8px 10px;color:var(--muted);font-size:14px;text-align:left;border-radius:8px}
.dbadd:hover{background:var(--panel-2);color:var(--text)}
.dbempty{padding:14px 10px;font-size:14px}
.dbnote{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:26px 4px}
.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}
.bcol{flex:0 0 272px;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:12px;background:color-mix(in srgb,var(--panel) 60%,transparent);border:1px solid var(--line)}
.bcol.dover{border-color:var(--accent-line);background:var(--accent-soft)}
.bcol header{display:flex;align-items:center;gap:8px;padding:2px 4px 4px}
.bcards{display:flex;flex-direction:column;gap:6px;min-height:8px}
.card{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);cursor:pointer;box-shadow:0 1px 0 rgba(0,0,0,.15)}
.card:hover{border-color:var(--line-2)}
.card.dragging{opacity:.4}
.card b{font-weight:550;font-size:14.5px;overflow-wrap:anywhere}
.cprop{font-size:13px;color:var(--text-2);display:flex;flex-wrap:wrap;gap:4px}
.calbar{display:flex;align-items:center;gap:14px;padding:4px 0 10px;flex-wrap:wrap}
.calbar b{font-size:17px;font-weight:600;min-width:150px}
.calnav{display:flex;gap:2px}
.calnav button{padding:4px 10px;border-radius:7px;color:var(--text-2);font-size:14px}
.calnav button:hover{background:var(--panel-2);color:var(--text)}
.cal{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.calhead,.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calhead span{padding:6px 8px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}
.calday{min-height:108px;padding:4px 5px 6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;min-width:0}
.calday:nth-child(7n){border-right:0}
.calday.out{background:color-mix(in srgb,var(--bg-2) 60%,transparent)}
.calday.out .calnum{opacity:.45}
.calday.dover{background:var(--accent-soft)}
.caltop{display:flex;align-items:center;justify-content:space-between}
.calnum{font-size:12.5px;color:var(--text-2);padding:1px 5px;border-radius:6px}
.calday.today .calnum{background:var(--accent);color:var(--accent-ink);font-weight:600}
.caladd{width:22px;height:22px;border-radius:6px;color:var(--muted);opacity:0}
.calday:hover .caladd{opacity:1}
.caladd:hover{background:var(--panel-2);color:var(--text)}
.calitem{display:block;width:100%;text-align:left;font-size:12.5px;padding:3px 7px;border-radius:6px;background:var(--panel-2);border:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calitem:hover{border-color:var(--line-2)}
.calitem.dragging{opacity:.4}
.props{display:flex;flex-direction:column;gap:1px;margin:-6px 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.prow{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:10px;align-items:start}
.pname{display:flex;align-items:center;gap:8px;padding:5px 6px;color:var(--muted);font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pname .mono{font-size:12px}
.pval{min-height:32px;padding:5px 8px;border-radius:7px;font-size:14px;overflow-wrap:anywhere}
.pval[role=button]{cursor:pointer}
.pval[role=button]:hover{background:var(--panel-2)}
/* всплывающие окна базы */
.dbpop{min-width:200px;max-width:min(380px,calc(100vw - 16px));display:flex;flex-direction:column;gap:2px}
.dbpop.edit{padding:4px;min-width:0}
.dbin{width:100%;padding:7px 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-2);outline:none;font-size:14px}
.dbin:focus{border-color:var(--accent-line)}
.dbpop.edit .dbin{border-color:var(--accent-line)}
.dbpop button{display:flex;align-items:center;gap:10px;padding:6px 9px;border-radius:7px;text-align:left;font-size:14px}
.dbpop button:hover,.dbpop button.on{background:var(--panel-2)}
.dbpop button .mono{width:22px;text-align:center;color:var(--muted);font-size:12px}
.dbpop .ok{margin-left:auto;color:var(--accent)!important}
.olist{display:flex;flex-direction:column;gap:1px;max-height:280px;overflow:auto;margin-top:4px}
.olhint{padding:6px 9px}
.plabel{font-size:11px;padding:8px 9px 2px;text-transform:uppercase;letter-spacing:.06em}
.ptypes{display:grid;grid-template-columns:1fr 1fr;gap:1px}
.oedit{display:flex;flex-direction:column;gap:2px;max-height:200px;overflow:auto}
.orow{display:flex;align-items:center;gap:6px;padding:0 4px}
.orow input{flex:1;min-width:0;padding:5px 7px;border-radius:6px;border:1px solid transparent;background:none;font-size:13.5px;outline:none}
.orow input:focus{border-color:var(--line-2);background:var(--bg-2)}
.dot{width:20px!important;height:20px;padding:0!important;border-radius:6px!important;flex:none;justify-content:center}
.dbtext{color:var(--text-2)}
.fpop{width:min(560px,calc(100vw - 16px));padding:10px;gap:6px}
.frow{display:flex;gap:6px;align-items:center}
.frow select,.frow input,.vfld select{flex:1;min-width:0;padding:6px 8px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-2);font-size:13.5px;color:var(--text);outline:none}
.frow button{flex:none;width:30px;justify-content:center}
.vpop{width:280px}
.vfld{display:flex;flex-direction:column;gap:4px;padding:6px 4px}
.vchk{display:flex;align-items:center;gap:8px;padding:5px 9px;border-radius:7px;font-size:14px;cursor:pointer}
.vchk:hover{background:var(--panel-2)}
.vchk input{accent-color:var(--accent)}
.vchk .mono{width:18px;color:var(--muted);font-size:12px;text-align:center}
.dbpop.date{flex-direction:row;padding:6px;gap:6px}
/* ссылка на подстраницу в тексте */
.t-page{padding:1px 0}
.nxpl{display:inline-flex;align-items:center;gap:8px;padding:3px 6px;margin-left:-6px;border-radius:7px;font-size:16px}
.nxpl b{font-weight:550;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px}
a.nxpl:hover{background:var(--panel-2)}
@media (max-width:860px){
  .prow{grid-template-columns:110px minmax(0,1fr);gap:4px}
  .dbtools{width:100%;overflow-x:auto}
  .calday{min-height:72px;padding:3px}
  .calitem{font-size:11px;padding:2px 4px}
  .caladd{display:none}
  .bcol{flex-basis:240px}
  .dbopen{opacity:1}
}
.dbi{width:15px;height:15px;flex:none;color:var(--muted)}
.dbtab.on .dbi{color:var(--accent)}
.pchip{display:inline-flex;align-items:center;gap:6px;margin:1px 8px 1px 0;font-size:13.5px;white-space:nowrap}
.pchip img,.pav{width:20px;height:20px;border-radius:50%;flex:none}
.pav{display:grid;place-items:center;font:600 11px var(--f-ui);background:var(--t-blue);color:var(--t-blue-i)}
.wsn{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.wsn b{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wsn .mono{font-size:10.5px}
.wsico.sm{width:20px;height:20px;font-size:11px;border-radius:5px}
.wsico.inv{background:var(--panel-2);color:var(--muted)}
.pop .ok{margin-left:auto;color:var(--accent)}
.team{gap:0}
.team h3{margin-bottom:8px}
.mrow{display:flex;align-items:center;gap:10px;width:100%;padding:9px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.mrow .acct{flex:1;min-width:200px}
.mrow .acct>span:last-child{display:flex;flex-direction:column;min-width:0}
.mrow .acct b{font-weight:550;overflow-wrap:anywhere}
.mrow .acct .mono{overflow-wrap:anywhere}
.mrow select,.invform select{padding:6px 8px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text);font-size:13.5px}
.mrow .btn{padding:6px 11px;font-size:13px}
.invform{display:flex;gap:8px;width:100%;flex-wrap:wrap;padding:12px 0 8px;border-top:1px solid var(--line)}
.invform input{flex:1;min-width:200px;padding:8px 11px;border-radius:9px;border:1px solid var(--line-2);background:var(--bg-2);outline:none}
.invform input:focus{border-color:var(--accent-line)}
.team>.small{margin-bottom:10px}
.team>[data-leave]{margin-top:10px}

.rng{display:flex;flex-direction:column;gap:6px;width:100%;max-width:380px}
.rng span{display:flex;justify-content:space-between;font-size:13.5px;color:var(--text-2)}
.rng input{width:100%;accent-color:var(--accent)}
/* совместная работа: кто на странице и в каком блоке */
.peers{display:flex;align-items:center}
.peer{width:26px;height:26px;border-radius:50%;margin-left:-6px;display:grid;place-items:center;overflow:hidden;font:600 12px var(--f-ui);background:var(--t-blue);color:var(--t-blue-i);border:2px solid var(--bg)}
.peer:first-child{margin-left:0}
.peer img{width:100%;height:100%;object-fit:cover}
.peer.more{background:var(--panel-2);color:var(--text-2);font-size:10.5px}
.nxb[data-peer]{background:var(--cool-soft);box-shadow:0 0 0 1px color-mix(in srgb,var(--cool) 35%,transparent)}
.nxb[data-peer]::after{content:attr(data-peer);position:absolute;right:4px;top:-9px;padding:0 6px;border-radius:5px;background:var(--cool);color:#06121c;font:600 10.5px/16px var(--f-ui);pointer-events:none}
.normbox{position:absolute;left:-10000px;top:0;width:700px;opacity:0;pointer-events:none}
/* панель форматирования при выделении, окно ссылки, цвета текста */
.fbar{position:fixed;z-index:45;display:flex;gap:1px;padding:4px;border-radius:10px;border:1px solid var(--line-2);background:var(--pop);box-shadow:0 12px 30px rgba(0,0,0,.4)}
.fbar button{min-width:32px;height:30px;padding:0 7px;border-radius:7px;display:grid;grid-auto-flow:column;place-items:center;gap:2px;font-size:14.5px;color:var(--text-2)}
.fbar button:hover{background:var(--panel-2);color:var(--text)}
.fbar button.on{background:var(--accent-soft);color:var(--accent)}
.fbar .mono{font-size:11px}
.linkpop{position:fixed;width:min(360px,calc(100vw - 16px));padding:10px;display:flex;flex-direction:column;gap:8px}
.lrow{display:flex;align-items:center;gap:10px}
.lrow .btn.sm{margin-left:0}
.colorpop{position:fixed;width:244px;padding:10px;display:flex;flex-direction:column;gap:6px}
.colorpop>.mono{font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.cgrid{display:grid;grid-template-columns:repeat(9,1fr);gap:3px}
.cgrid button{height:22px;border-radius:5px;font:600 13px var(--f-ui);border:1px solid var(--line)}
.cgrid button:hover{border-color:var(--line-2);transform:translateY(-1px)}
.colorpop .dbtext{text-align:left;padding:4px 0;font-size:13px}
.tc-gray{color:var(--t-gray-i)}.tc-brown{color:var(--t-brown-i)}.tc-orange{color:var(--t-orange-i)}.tc-yellow{color:var(--t-yellow-i)}.tc-green{color:var(--t-green-i)}
.tc-blue{color:var(--t-blue-i)}.tc-purple{color:var(--t-purple-i)}.tc-pink{color:var(--t-pink-i)}.tc-red{color:var(--t-red-i)}
.bg-gray{background:var(--t-gray)}.bg-brown{background:var(--t-brown)}.bg-orange{background:var(--t-orange)}.bg-yellow{background:var(--t-yellow)}.bg-green{background:var(--t-green)}
.bg-blue{background:var(--t-blue)}.bg-purple{background:var(--t-purple)}.bg-pink{background:var(--t-pink)}.bg-red{background:var(--t-red)}
.nxc span[class^="bg-"]{border-radius:3px;padding:0 1px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* вложенность и перемикач */
.nxb{margin-left:calc(var(--d,0) * 26px)}
.nxb[hidden]{display:none}
.nxtg{flex:none;width:22px;height:26px;margin-top:1px;border-radius:6px;color:var(--text-2);font-size:12px;display:grid;place-items:center;transition:transform .15s}
.nxtg:hover{background:var(--panel-2)}
.t-toggle.open>.nxtg{transform:rotate(90deg)}
.t-toggle .nxc{font-weight:500}
@media (prefers-reduced-motion:reduce){.nxtg{transition:none}}
/* комментарии */
.cmtb{position:absolute;right:-44px;top:3px;display:flex;align-items:center;gap:3px;padding:2px 6px;border-radius:7px;font:500 12px var(--f-ui);color:var(--accent);background:var(--accent-soft)}
.cmtb svg{width:13px;height:13px}
.cmtb:hover{background:var(--accent-line);color:var(--accent-ink)}
.nxb.flash{background:var(--accent-soft);transition:background .3s}
.cpanel{position:fixed;z-index:35;top:0;right:0;bottom:0;width:min(380px,100vw);display:flex;flex-direction:column;background:var(--pop);border-left:1px solid var(--line-2);box-shadow:-20px 0 40px rgba(0,0,0,.3)}
.cphead{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.cphead b{flex:1;font-size:15px}
.cplist{flex:1;overflow:auto;padding:10px 12px 40px;display:flex;flex-direction:column;gap:10px}
.cth{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:10px;background:color-mix(in srgb,var(--panel) 70%,transparent)}
.cth.focus{border-color:var(--accent-line)}
.cth.done{opacity:.65}
.cth>header{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}
.cth>header b{font-size:13.5px}
.cref{text-align:left;font-size:13px;color:var(--text-2);border-left:2px solid var(--accent-line);padding-left:8px;overflow-wrap:anywhere}
.cref:hover{color:var(--text)}
.cth .dbtext{font-size:12.5px;white-space:nowrap}
.cm{display:flex;gap:9px}
.cav{flex:none;width:26px;height:26px;border-radius:50%;overflow:hidden;display:grid;place-items:center;font:600 12px var(--f-ui);background:var(--t-blue);color:var(--t-blue-i)}
.cav img{width:100%;height:100%;object-fit:cover}
.cm>div{min-width:0;flex:1}
.cmeta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13px}
.cmeta .mono{font-size:11px}
.cbody{font-size:14px;overflow-wrap:anywhere;margin-top:2px}
.cform{display:flex;gap:6px;align-items:flex-end}
.cform textarea{flex:1;min-width:0;resize:none;max-height:180px;padding:7px 10px;border-radius:9px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text);font:inherit;font-size:14px;outline:none}
.cform textarea:focus{border-color:var(--accent-line)}
.cform .btn.sm{margin-left:0}
@media (min-width:1200px){ body.cpanel-open .main{padding-right:380px} }
@media (max-width:860px){ .cmtb{right:4px;top:-10px} }
.cmeta .dbtext{font-size:11.5px;opacity:0;transition:opacity .15s}
.cm:hover .cmeta .dbtext,.cm:focus-within .cmeta .dbtext{opacity:1}
@media (pointer:coarse){.cmeta .dbtext{opacity:1}}
/* шаблоны */
.tplhint{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-6px 0 14px;font-size:13.5px}
.chip{padding:5px 10px;border-radius:999px;border:1px solid var(--line-2);font-size:13px;color:var(--text-2)}
.chip:hover{background:var(--panel-2);color:var(--text)}
.chip.ghost{border-style:dashed}
.tplbox{width:min(760px,100%);max-height:80vh;display:flex;flex-direction:column;border-radius:16px;border:1px solid var(--line-2);background:var(--pop);box-shadow:0 30px 60px rgba(0,0,0,.5);overflow:hidden}
.tplbox>header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}
.tplbox>header b{font-size:16px}
.tplgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;padding:14px;overflow:auto}
.tplcard{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;border-radius:12px;border:1px solid var(--line);background:var(--panel-2);text-align:left;min-height:150px}
.tplcard:hover{border-color:var(--accent-line);transform:translateY(-1px)}
.tplcard b{font-size:15px}
.tplcard .muted{font-size:13px;line-height:1.4;flex:1}
.tplico{font-size:28px}
.tplkind{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
/* база внутри текста */
.t-dbview{margin:10px 0}
.dbinline{flex:1;min-width:0;cursor:auto}
.dbihead{margin-bottom:2px}
.dbihead>button,.dbihead>a{display:inline-flex;align-items:center;gap:8px;padding:4px 6px;margin-left:-6px;border-radius:7px;font-size:18px}
.dbihead b{font-weight:650}
.dbihead>button:hover,.dbihead>a:hover{background:var(--panel-2)}
.dbinline .db{margin-top:0}
/* ---------- живые обложки ---------- */
.cover{position:relative;flex:none;height:240px;overflow:hidden;background:#0b1220;isolation:isolate}
.cover.l-magazine{height:360px}
.cover.l-band{height:110px}
.covercv,.coverimg{position:absolute;inset:0;width:100%;height:calc(100% + 60px);display:block;object-fit:cover;transform:translateY(var(--py,0));opacity:var(--po,1);will-change:transform}
.coverfade{position:absolute;inset:auto 0 0 0;height:55%;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg) 70%,transparent));pointer-events:none}
.cover.l-classic .coverfade,.cover.l-band .coverfade{height:35%;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg) 35%,transparent))}
.coveracts{position:absolute;right:16px;bottom:14px;display:flex;gap:6px;opacity:0;transition:opacity .15s}
.cover:hover .coveracts,.cover:focus-within .coveracts{opacity:1}
.coveracts button,.focusdone{padding:6px 11px;border-radius:9px;font-size:13px;color:#fff;background:rgba(10,14,22,.55);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18)}
.coveracts button:hover{background:rgba(10,14,22,.75)}
.focusdone{position:absolute;right:16px;bottom:14px;color:var(--accent-ink);background:var(--accent);border:0}
.cover.focusing{cursor:ns-resize;outline:2px dashed var(--accent);outline-offset:-6px}
.cover.focusing .coveracts{display:none}
.coverinfo{position:absolute;left:50%;transform:translateX(-50%);bottom:16px;width:min(820px,100%);padding:0 64px;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}
.cover.l-classic .coverinfo{bottom:auto;top:16px}
.cchip{display:inline-flex;align-items:center;gap:8px;padding:5px 11px;border-radius:999px;font-size:12.5px;color:#fff;background:rgba(10,14,22,.45);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14)}
.cchip b{font-weight:650}
.cbar{display:inline-block;width:56px;height:5px;border-radius:5px;background:rgba(255,255,255,.22);overflow:hidden}
.cbar>i{display:block;height:100%;background:var(--pa,var(--accent));border-radius:5px}
/* шапка страницы на обложке */
.pghead{position:relative}
.pgtools{position:absolute;top:-30px;left:-6px;opacity:0;transition:opacity .15s}
.page:hover .pgtools,.pgtools:focus-within{opacity:1}
.pgtools button{font-size:13px;color:var(--muted);padding:4px 8px;border-radius:7px}
.pgtools button:hover{background:var(--panel-2);color:var(--text)}
.page.oncover.l-classic .pgicon{margin-top:-62px;position:relative;z-index:2;text-shadow:0 6px 20px rgba(0,0,0,.35)}
.page.oncover.l-band{padding-top:22px}
.page.oncover.l-magazine{margin-top:-210px;position:relative;z-index:2}
.page.oncover.l-magazine .pghead{display:inline-block;max-width:100%;padding:18px 26px 6px;margin-left:-26px;border-radius:22px;background:color-mix(in srgb,var(--bg) 42%,transparent);backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.page.oncover.l-magazine .pgtitle{font-size:44px;margin-bottom:12px}
.top.tinted{box-shadow:inset 0 -2px 0 var(--pa-top,transparent)}
.coverpop{position:fixed;width:min(420px,calc(100vw - 16px));padding:12px;display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 16px);overflow-y:auto;overscroll-behavior:contain}
.coverpop>.mono{font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.cstyles{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.cstyles button{display:flex;flex-direction:column;gap:4px;padding:4px;border-radius:10px;border:1px solid var(--line);font-size:12.5px;color:var(--text-2)}
.cstyles button.on{border-color:var(--accent);color:var(--text)}
.cstyles canvas{width:100%;height:54px;border-radius:7px;display:block}
.cpals{display:flex;gap:6px}
.cpals button{width:34px;height:24px;border-radius:7px;border:2px solid transparent}
.cpals button.on{border-color:var(--text)}
.crow{display:flex;align-items:center;gap:12px;margin-top:4px}
@media (max-width:860px){
  .cover{height:170px}.cover.l-magazine{height:260px}.cover.l-band{height:80px}
  .coveracts{opacity:1;bottom:auto;top:10px;right:10px}
  .coverinfo{padding:0 20px}
  .page.oncover.l-magazine{margin-top:-150px}
  .page.oncover.l-magazine .pgtitle{font-size:32px}
  .page.oncover.l-magazine .pghead{padding:14px 18px 4px;margin-left:-8px}
}
@media (prefers-reduced-motion:reduce){.covercv,.coverimg{transform:none}}
.page.oncover.l-magazine{pointer-events:none} /* пустое место над обложкой не мешает её кнопкам */
.page.oncover.l-magazine>*{pointer-events:auto}
.cover.l-magazine .coveracts{top:14px;bottom:auto}
.cover.l-magazine .coverinfo{bottom:auto;top:16px;left:24px;transform:none;width:auto;padding:0 140px 0 0}
.cover.l-magazine .coverfade{height:70%;background:linear-gradient(180deg,transparent,var(--bg))}
.page.oncover.l-magazine .pghead{margin-bottom:24px}
@media (max-width:860px){ .cover.l-magazine .coverinfo{left:12px;padding-right:120px} }
/* ---------- настройки чтения ---------- */
:root{--fs:16px;--pw:820px;--f-text:var(--f-ui)}
:root[data-size="s"]{--fs:15px}:root[data-size="l"]{--fs:18px}:root[data-size="xl"]{--fs:20px}
:root[data-width="wide"]{--pw:1080px}
:root[data-font="serif"]{--f-text:'Literata',Georgia,serif}
:root[data-font="mono"]{--f-text:var(--f-mono)}
.page{max-width:var(--pw)}
.nxblocks{font-size:var(--fs);font-family:var(--f-text)}
.pgtitle{font-size:calc(var(--fs) * 2.4)}
:root[data-font="serif"] .pgtitle{font-family:'Literata',Georgia,serif;font-weight:700}
.t-h1 .nxc{font-size:calc(var(--fs) * 1.85)}.t-h2 .nxc{font-size:calc(var(--fs) * 1.45)}.t-h3 .nxc{font-size:calc(var(--fs) * 1.15)}
/* режим фокуса: только текст */
.focusexit{display:none}
:root.focusmode .app{grid-template-columns:1fr}
:root.focusmode .side,:root.focusmode .scrim{display:none}
:root.focusmode .top{opacity:0;transition:opacity .25s}
:root.focusmode .top:hover,:root.focusmode .top:focus-within{opacity:1}
:root.focusmode .focusexit{display:block;position:fixed;z-index:40;left:16px;bottom:16px;padding:7px 12px;border-radius:10px;font-size:12.5px;color:var(--muted);background:color-mix(in srgb,var(--panel) 85%,transparent);border:1px solid var(--line);opacity:.55}
:root.focusmode .focusexit:hover{opacity:1;color:var(--text)}
:root.focusmode .nxh{display:none}
/* высокий контраст */
:root.hc{--text:#ffffff;--text-2:#e2e8f0;--muted:#b8c4d6;--line:rgba(220,235,255,.22);--line-2:rgba(220,235,255,.38)}
:root.hc[data-theme="light"]{--text:#000;--text-2:#1d1d1b;--muted:#4a4740;--line:rgba(0,0,0,.25);--line-2:rgba(0,0,0,.45)}
:root.hc body::before{opacity:.15}
.vrow{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;width:100%;flex-wrap:wrap}
.vrow>span{font-size:14px;color:var(--text-2);min-width:150px}
.toast{display:flex;align-items:center;gap:14px}
.toast.act{pointer-events:auto}
.toast [data-undo]{color:var(--accent);font-weight:650;padding:2px 4px;border-radius:6px;background:none}
:root[data-theme="dark"] .toast [data-undo]{color:#c56a00}
.toast [data-undo]:hover{text-decoration:underline}
/* ---------- главная «Сьогодні» ---------- */
.page.home{padding-top:40px}
.hhead{margin-bottom:26px}
.htitle{font-size:34px;font-weight:700;margin:4px 0 14px;letter-spacing:-.01em}
.hacts{display:flex;flex-wrap:wrap;gap:6px}
.hsec{margin-top:28px}
.hsec>h2{font-size:15px;font-weight:650;margin-bottom:10px;display:flex;align-items:baseline;gap:8px}
.hgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.hcard{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 70%,transparent);text-align:left;min-height:96px}
.hcard:hover{border-color:var(--line-2);background:var(--panel-2)}
.hcard b{font-weight:550;font-size:14px;overflow-wrap:anywhere;flex:1}
.hico{font-size:22px}
.hcard .mono{font-size:11px}
.tgroup{margin-bottom:12px}
.tgroup>.mono{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0}
.tgroup.over>.mono{color:var(--danger)}
.trow{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:9px;transition:opacity .25s,transform .25s}
.trow:hover{background:var(--panel-2)}
.trow.gone{opacity:0;transform:translateX(12px)}
.tchk{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2)}
.tchk:not(.off):hover{border-color:var(--accent);background:var(--accent-soft)}
.tchk.off{opacity:.4}
.tttl{flex:1;min-width:0;text-align:left;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdb{font-size:11.5px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.tdue{font-size:12.5px;color:var(--text-2);white-space:nowrap}
.tdue.late{color:var(--danger)}
.hempty{padding:16px;border:1px dashed var(--line-2);border-radius:12px}
.hempty p+p{margin-top:4px;font-size:13.5px}
.hcm{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;padding:9px 8px;border-radius:9px;font-size:14px}
.hcm:hover{background:var(--panel-2)}
.fav.on{color:var(--accent)}
.favs{padding:0 8px 4px}
@media (max-width:860px){ .tdb{display:none} .htitle{font-size:28px} }
.tplsub{padding:12px 16px 0;font-size:13.5px}
.tplcard.ghost{border-style:dashed;background:transparent}
/* довідка и экскурсия */
.helpbox{width:min(820px,100%)}
.helpbody{overflow:auto;padding:16px;display:flex;flex-direction:column;gap:14px}
.helpcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.helpcards section{padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel-2)}
.helpcards h3{font-size:14.5px;margin-bottom:4px}
.helpcards p{font-size:13.5px;color:var(--text-2);line-height:1.5}
.helpcards code{font:12.5px var(--f-mono);background:var(--bg-2);padding:0 4px;border-radius:4px}
.keysh{font-size:14px}
.keys{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:13.5px}
.keys dt kbd{margin:0}
.keys dd{color:var(--text-2)}
.helpbody>.btn{align-self:flex-start}
.tour{position:fixed;z-index:80;width:min(320px,calc(100vw - 16px));padding:14px 16px;border-radius:14px;background:var(--pop);border:1px solid var(--accent-line);box-shadow:0 20px 50px rgba(0,0,0,.5)}
.tour h3{font-size:15.5px;margin:2px 0 4px}
.tour p{font-size:13.5px;color:var(--text-2)}
.tour>.mono{font-size:11px}
.tourbtns{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.tourbtns .btn.sm{margin-left:0}
.tourfocus{outline:2px solid var(--accent);outline-offset:3px;border-radius:10px;position:relative;z-index:79}
.sempty{padding:22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.sempty .btn{margin-top:6px}
/* упоминания */
.mention{display:inline-block;padding:0 5px;border-radius:6px;background:var(--panel-2);color:var(--text);font-weight:500;cursor:default;user-select:all;white-space:nowrap}
.mention[data-m^="p:"]{cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.mention[data-m^="p:"]:hover{background:var(--accent-soft)}
.mention.me{background:var(--accent-soft);color:var(--accent)}
.mention.gone{opacity:.55;text-decoration:line-through}
.mention.late{color:var(--danger)}
.atmenu{position:fixed;z-index:46;width:300px;max-height:340px;overflow:auto;padding:6px;display:flex;flex-direction:column}
.atmenu>.mono{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:6px 8px 2px}
.atmenu button{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;text-align:left;font-size:14px}
.atmenu button>span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.atmenu button .mono{font-size:11px}
.atmenu button.on,.atmenu button:hover{background:var(--panel-2)}
.atav{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:6px;background:var(--bg-2);font-size:12px}
/* сповіщення */
.nbadge{margin-left:auto;min-width:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font:600 11px/18px var(--f-ui);text-align:center}
.nitem{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;padding:10px;border-radius:10px;font-size:14px;position:relative}
.nitem:hover{background:var(--panel-2)}
.nitem.unread{background:var(--accent-soft)}
.nitem.unread::after{content:"";position:absolute;right:10px;top:14px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.ntext{display:flex;flex-direction:column;gap:2px;min-width:0;padding-right:14px}
.ntext .muted{overflow-wrap:anywhere}
.ntext .mono{font-size:11px}
.backlinks:empty{display:none}
.crumbs .lock{padding:0 2px;font-size:12px}
.tree>.sbsec{margin:14px 0 2px}
.sbsplit{display:flex;gap:1px}
.sbsplit .sbi:first-child{flex:1}
.sbi.more{width:30px;justify-content:center;padding:6px 0;color:var(--muted);font-size:12px}
/* колонки */
.t-cols{display:block;margin:6px 0}
.nxcols{display:grid;grid-template-columns:repeat(var(--n,2),minmax(0,1fr));gap:28px}
.nxcol{min-height:40px;padding-bottom:6px;border-radius:8px}
.nxcol:hover{box-shadow:inset 0 0 0 1px var(--line)}
.nxcol.ro:hover{box-shadow:none}
.nxcol .nxh{left:-24px}
.t-cols>.nxh{top:-2px}
@media (max-width:860px){ .nxcols{grid-template-columns:1fr;gap:6px} }
/* простая таблица */
.t-table{display:block;margin:8px 0}
.nxtwrap{overflow-x:auto;padding-bottom:2px}
.nxtable{border-collapse:collapse;min-width:60%;font-size:calc(var(--fs) * .94)}
.nxtc{border:1px solid var(--line-2);padding:7px 10px;min-width:110px;vertical-align:top;outline:none;overflow-wrap:anywhere}
.nxtc:focus{box-shadow:inset 0 0 0 2px var(--accent-line)}
.t-table.hh tr:first-child .nxtc{background:var(--panel-2);font-weight:600}
.nxtbar{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;opacity:0;transition:opacity .15s}
.t-table:hover .nxtbar,.t-table:focus-within .nxtbar{opacity:1}
.nxtbar button{font-size:12px;padding:3px 8px;border-radius:6px;color:var(--muted);border:1px solid var(--line)}
.nxtbar button:hover{color:var(--text);background:var(--panel-2)}
@media (pointer:coarse){.nxtbar{opacity:1}}
/* файлы и встраивание */
.t-file,.t-embed{display:block;margin:8px 0}
.nxfile{display:flex;flex-direction:column;gap:8px}
.nxfilec{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line-2);border-radius:12px;background:var(--bg-2);max-width:520px}
.nxfilec:hover{border-color:var(--accent-line)}
.nxfico{font-size:26px}
.nxfilet{display:flex;flex-direction:column;min-width:0}
.nxfilet b{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nxfilet .mono{font-size:11.5px}
.nxpdf{width:100%;height:560px;border:1px solid var(--line);border-radius:12px;background:#fff}
.nxembed{display:flex;flex-direction:column;gap:4px}
.nxembed iframe{width:100%;aspect-ratio:16/9;border:1px solid var(--line);border-radius:12px;background:#000}
.nxembsrc{font-size:11.5px;color:var(--muted);align-self:flex-start}
.nxembsrc:hover{color:var(--text)}
@media (max-width:860px){.nxpdf{height:420px}}
/* значки и цвет блоков */
.icoimg{width:1em;height:1em;object-fit:cover;border-radius:.2em;vertical-align:-.12em}
.pgicon .icoimg{width:64px;height:64px;border-radius:14px}
.pop.emoji{display:block;width:min(360px,calc(100vw - 16px));max-height:420px;overflow:auto;padding:8px}
.pop.emoji>.mono{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:8px 4px 2px}
.emrow{display:flex;gap:10px;flex-wrap:wrap;padding:2px 4px 6px;border-bottom:1px solid var(--line)}
.emrow .dbtext{font-size:13px}
.emgrid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}
.emgrid button{font-size:21px;height:38px;border-radius:8px}
.emgrid button:hover{background:var(--panel-2)}
.nxb[class*="bgb-"]{padding:6px 10px;margin:3px 0;border-radius:10px}
.bgb-gray{background:var(--t-gray)}.bgb-brown{background:var(--t-brown)}.bgb-orange{background:var(--t-orange)}.bgb-yellow{background:var(--t-yellow)}.bgb-green{background:var(--t-green)}
.bgb-blue{background:var(--t-blue)}.bgb-purple{background:var(--t-purple)}.bgb-pink{background:var(--t-pink)}.bgb-red{background:var(--t-red)}
.nxbgrow{display:flex;align-items:center;gap:4px;padding:6px 9px}
.nxbgrow .mono{width:26px;text-align:center;color:var(--muted)}
.nxbgrow button{width:20px!important;height:20px;padding:0!important;border-radius:6px!important;border:1px solid var(--line-2)}
.nxbgrow button.on{outline:2px solid var(--text);outline-offset:1px}
.nxbgrow .bg-none{background:transparent;background-image:linear-gradient(135deg,transparent 45%,var(--danger) 45%,var(--danger) 55%,transparent 55%)}
/* ---------- печать и PDF ---------- */
@media print{
  :root{--bg:#fff;--bg-2:#f5f5f2;--panel:#fff;--panel-2:#f1f0ec;--text:#111;--text-2:#333;--muted:#666;--line:#ddd;--line-2:#ccc;--accent:#b45f06;--accent-soft:#fdf0e1;--accent-line:#e9c08f;--cool:#145f8a}
  :root{color-scheme:light}
  body{background:#fff!important;color:#111}
  body::before,body::after,.side,.top,.scrim,.toast,.coveracts,.coverinfo,.nxh,.cmtb,.tplhint,.pgtools,.dbtools,.dbadd,.rowact,.dbopen,.nxtbar,.focusexit,.cpanel,.pop,.dbpop,.fbar,.peer,.kids.backlinks,.pgmeta{display:none!important}
  .app{display:block;height:auto}
  .main{overflow:visible;display:block}
  .page{max-width:none;padding:0 0 20px;margin:0!important}
  .page.oncover.l-magazine .pghead{background:none;backdrop-filter:none;border:0;box-shadow:none;padding:0;margin:0}
  .cover{height:160px!important;margin-bottom:16px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .page.oncover.l-magazine{margin-top:0!important}
  .nxb{break-inside:avoid}
  .nxc a::after{content:" (" attr(href) ")";font-size:.8em;color:#666}
  .nxembed iframe,.nxpdf{display:none}
  .t-callout,.tag,[class*="bgb-"],[class*="bg-"]{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* таблица базы: ширина колонок, порядок строк, закреплённая первая колонка, шаблоны записей */
.tbl{table-layout:fixed}
.tbl td{min-width:0;max-width:none}
.tbl td.ttl{min-width:0}
.tbl th{position:relative}
.colgrip{position:absolute;right:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:2}
.colgrip:hover,.colgrip:active{background:var(--accent-line)}
.tbl th.ttl,.tbl td.ttl{position:sticky;left:0;z-index:1;background:var(--bg)}
.tbl th.ttl{z-index:3}
.rowh{position:absolute;left:-2px;top:8px;width:16px;font-size:10px;letter-spacing:-2px;color:var(--muted);cursor:grab;opacity:0}
tr:hover .rowh{opacity:.8}
.tbl .ttlin{padding-left:8px}
tr.dragging{opacity:.4}
tr.dbefore td{box-shadow:inset 0 2px 0 var(--accent)}
tr.dafter td{box-shadow:inset 0 -2px 0 var(--accent)}
.dbnewsplit{display:inline-flex;gap:1px;margin-left:6px}
.dbnewsplit .btn.sm{margin-left:0}
.dbnewsplit .btn.sm:first-child:not(:last-child){border-radius:8px 0 0 8px}
.dbnewsplit .btn.more{border-radius:0 8px 8px 0;padding:5px 7px}
.tplrow{display:flex;align-items:center}
.tplrow>button:first-child{flex:1}
.tpldel{width:28px;justify-content:center;color:var(--muted)}
.tpldel:hover{color:var(--danger)}
.tplhint2{padding:4px 9px;max-width:260px}
@media (max-width:860px){ .tbl th.ttl,.tbl td.ttl{position:static} } /* на телефоне закреплённая колонка закрывала бы всю таблицу */
.shead.fix{text-transform:none;letter-spacing:.02em;color:var(--accent)}
.rep{font-size:13px;color:var(--text-2);white-space:nowrap}
/* история с подсветкой */
.histhint{margin:4px 0 10px;font-size:13.5px}
ins{background:var(--t-green);color:var(--t-green-i);text-decoration:none;border-radius:3px;padding:0 2px}
del{background:var(--t-red);color:var(--t-red-i);border-radius:3px;padding:0 2px}
.vrow2 .vwho{flex:1;display:flex;align-items:center;gap:8px;min-width:0}
.dadd>.nxb{background:var(--t-green);border-radius:8px}
.drem>.nxb{background:var(--t-red);border-radius:8px;opacity:.85;text-decoration:line-through}
.dchg>.nxb{box-shadow:inset 3px 0 0 var(--t-yellow-i);border-radius:4px}
.dtitle{margin:6px 0 10px;font-size:15px}
.viewspop{width:300px;max-height:420px;overflow:auto}
.viewspop>.mono{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:8px 9px 3px}
.vwrow{display:flex;align-items:center;gap:9px;padding:5px 9px;font-size:14px}
.vwname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vwrow .mono{font-size:11px}
.vwempty{padding:2px 9px 4px}
/* сейф */
.safelock{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin:60px auto;max-width:440px}
.safeico{font-size:56px}
.safelock .pgtitle{margin:0}
.safeform{display:flex;gap:8px;width:100%;margin-top:6px}
.safeform input,.sfform input{flex:1;min-width:0;padding:9px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg-2);outline:none;font-size:15px}
.safeform input:focus{border-color:var(--accent-line)}
.safelock .err,.sfform .err{color:var(--danger)}
.safebar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 12px;margin:0 0 14px;border-radius:10px;background:var(--t-green);color:var(--t-green-i);font-size:13.5px}
.safebar .dbtext{color:inherit;text-decoration:underline}
.sfbox{width:min(460px,100%)}
.sfform{display:flex;flex-direction:column;gap:12px;padding:16px}
.sfform .fld{max-width:none}
.sfwarn{font-size:13px;color:var(--accent);line-height:1.45}
/* публичная форма */
.formpage{position:relative;z-index:1;padding:40px 16px 60px}
.fcard{max-width:620px;margin:0 auto;padding:28px;border-radius:20px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 85%,transparent);display:flex;flex-direction:column;gap:16px}
.fhead h1{font-size:28px;margin:6px 0 4px}
.fico{font-size:40px}
.ffld{display:flex;flex-direction:column;gap:6px;font-size:14.5px}
.ffld input,.ffld select{padding:10px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text);font:inherit;outline:none}
.ffld input:focus,.ffld select:focus{border-color:var(--accent-line)}
.fchecks{display:flex;flex-wrap:wrap;gap:8px 16px}
.fchecks input,.fcheck input{accent-color:var(--accent)}
.req{color:var(--danger)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.ferr{color:var(--danger);font-size:14px}
.fmade{text-align:center}.fmade b{color:var(--accent)}
.fdone{align-items:center;text-align:center}
.formpop{width:min(380px,calc(100vw - 16px));padding:12px;gap:6px}
.formpop textarea.dbin{resize:vertical;font-family:inherit}
.formpop .vchk{display:flex}
.formpop .vchk span{flex:1}
.fon b{font-weight:600}
.freq{width:24px!important;justify-content:center;padding:0!important;color:var(--muted)}
.freq.on{color:var(--danger)}
.actday{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 6px}
.actrow{display:flex;align-items:center;gap:10px;padding:7px 4px;border-top:1px solid var(--line);font-size:14px}
.acttext{flex:1;min-width:0;overflow-wrap:anywhere}
.actpg{font-weight:550;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.actpg.gone{opacity:.6;text-decoration:line-through}
.calhol{flex:1;min-width:0;margin:0 4px;font-size:10.5px;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* сайт из опубликованных страниц */
.sitenav{position:fixed;top:0;left:0;bottom:0;width:250px;z-index:6;overflow:auto;padding:14px 10px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:1px}
.sitenav a{display:flex;align-items:center;gap:8px;padding:6px 8px;padding-left:calc(8px + var(--d,0) * 14px);border-radius:8px;font-size:14px;color:var(--text-2)}
.sitenav a:hover{background:var(--panel-2);color:var(--text)}
.sitenav a.on{background:var(--accent-soft);color:var(--accent)}
.sitenav .sitehome{font-size:15px;margin-bottom:8px;color:var(--text)}
.sitenav .sitehome b{font-weight:650}
body.withnav .pubtop,body.withnav main{margin-left:250px}
.navbtn{display:none;font-size:18px;padding:2px 6px}
.domain{margin-top:4px;font-size:13.5px}
.domain summary{cursor:pointer;color:var(--text-2)}
.domain p{margin:8px 0;font-size:13px;line-height:1.5}
.domain code{font:12px var(--f-mono);background:var(--bg-2);padding:0 4px;border-radius:4px}
@media (max-width:860px){
  body.withnav .pubtop,body.withnav main{margin-left:0}
  .sitenav{transform:translateX(-102%);transition:transform .2s;width:min(280px,86vw);background:var(--bg)}
  body.navopen .sitenav{transform:none;box-shadow:20px 0 40px rgba(0,0,0,.4)}
  .navbtn{display:block}
}
.pop.share hr{border:0;border-top:1px solid var(--line);margin:2px 0}
.guestrow{display:flex;gap:6px}
.guestrow input{flex:1;min-width:0}
.guestrow input,.guestrow select{font:inherit;font-size:13.5px;padding:7px 9px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--text)}
.guests{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow:auto}
.grow{display:flex;align-items:center;gap:8px;font-size:13.5px}
.grow .gname{flex:1;min-width:0;display:flex;flex-direction:column}
.grow .gname b,.grow .gname span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grow .cav{flex:none}
/* синхронный блок */
.t-sync .nxsync{flex:1;min-width:0;width:100%;box-sizing:border-box;border:1px dashed color-mix(in srgb,var(--accent) 55%,transparent);border-radius:10px;padding:4px 14px 6px;margin:4px 0}
.nxsynchead{display:flex;gap:10px;align-items:center;font-size:11px;color:var(--accent);padding:4px 0 2px;flex-wrap:wrap}
.nxsynchead button{font:inherit;color:var(--text-2);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.nxsyncb:hover{box-shadow:none}
/* связи, итоги, формулы */
.rchip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:1px 8px;margin:1px 4px 1px 0;border-radius:6px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rchip:hover{border-color:var(--accent-line)}
.ferr{color:var(--t-red-i);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%}
.fyes{color:var(--t-green-i);font-weight:600}
.pct{display:inline-block;width:60px;height:6px;border-radius:3px;background:var(--line-2);margin-right:8px;vertical-align:middle;overflow:hidden}
.pct i{display:block;height:100%;background:var(--t-green-i);border-radius:3px}
.dbpop select.dbin{width:100%}
.fexpr{width:100%;box-sizing:border-box;font:13px/1.5 var(--f-mono);resize:vertical}
.fprev{font-size:12.5px;color:var(--text-2);margin:2px 0 4px}
.fprev.bad{color:var(--t-red-i)}
.fins{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}
.fins button{font:12px var(--f-mono);padding:2px 7px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text);cursor:pointer}
.fhelp summary{cursor:pointer;font-size:12.5px;color:var(--text-2);margin:4px 0}
.fhelp button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left}
.fhelp code{font:12px var(--f-mono);white-space:normal}
.ptypes.two{grid-template-columns:1fr 1fr}
/* галерея */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gcard{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line);cursor:pointer;min-height:120px;min-width:0;text-align:left;font:inherit;color:inherit}
.gcard:hover{border-color:var(--line-2);transform:translateY(-1px)}
.gcard b{font-size:15px;overflow-wrap:anywhere}
.gico{font-size:26px;line-height:1}
.gprop{display:flex;flex-direction:column;gap:2px;font-size:13px;min-width:0}
.gprop .mono{font-size:10.5px}
.gnew{align-items:center;justify-content:center;color:var(--text-2);border-style:dashed;background:none}
/* список */
.dblist{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.lrow{display:flex;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px solid var(--line);cursor:pointer;min-width:0}
.lrow:hover{background:var(--bg-2)}
.lrow b{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lprops{margin-left:auto;display:flex;gap:8px;align-items:center;min-width:0;overflow:hidden;font-size:13px;color:var(--text-2);flex-shrink:1}
.lp{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
@media (max-width:860px){ .lrow{flex-wrap:wrap} .lprops{margin-left:30px;width:100%;flex-wrap:wrap} }
/* таймлайн */
.tlwrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--bg-2)}
.tl{position:relative}
.tlmonths,.tldays{display:flex}
.tlmonths span{flex:none;font:600 12px var(--f-ui);padding:6px 8px;border-left:1px solid var(--line);white-space:nowrap;overflow:hidden;box-sizing:border-box}
.tldays span{flex:none;width:var(--w);text-align:center;font:11px var(--f-mono);color:var(--text-2);padding:3px 0;border-bottom:1px solid var(--line)}
.tldays .we{background:color-mix(in srgb,var(--line) 60%,transparent)}
.tldays .hol{color:var(--t-red-i)}
.tldays .today{color:var(--accent-ink);background:var(--accent);border-radius:6px}
.tlbody{position:relative}
.tlnow{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);opacity:.6}
.tlbar{position:absolute;height:28px;border-radius:7px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--text);font:13px var(--f-ui);text-align:left;padding:0 8px;cursor:pointer;overflow:visible;white-space:nowrap}
.tlbar span{position:relative}
.tlbar:hover{border-color:var(--accent)}
.tlund{margin:6px 0 0;font-size:12px}
/* графік */
.chhead{font-size:12px;margin:2px 0 12px}
.bars{display:flex;flex-direction:column;gap:8px;max-width:760px}
.chrow{display:grid;grid-template-columns:minmax(80px,180px) 1fr auto;gap:10px;align-items:center;font-size:13.5px}
.chl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chbar{height:22px;border-radius:6px;background:var(--bg-2);overflow:hidden}
.chbar i{display:block;height:100%;border-radius:6px;min-width:3px;opacity:.85}
.chv{font-size:12.5px;min-width:40px;text-align:right}
.donutbox{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.donut{width:190px;height:190px;border-radius:50%;display:grid;place-items:center;flex:none}
.donut>span{width:118px;height:118px;border-radius:50%;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center}
.donut b{font-size:18px}
.legend{display:flex;flex-direction:column;gap:6px;font-size:13.5px;min-width:0}
.legend div{display:flex;align-items:center;gap:8px}
.legend i{width:10px;height:10px;border-radius:3px;flex:none}
.tlmonths b{position:sticky;left:8px;font-weight:600}
/* ===== Чаты (пакет 5) ===== */
.cav.xs{width:18px;height:18px;font-size:9.5px}.cav.sm{width:22px;height:22px;font-size:11px}.cav.xl{width:72px;height:72px;font-size:28px}
.chlist{display:flex;flex-direction:column;gap:1px;padding:0 8px;max-height:34vh;overflow:auto;flex:none}
.chi{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;color:var(--text-2);font-size:14px;text-align:left;min-width:0}
.chi:hover,.chi.on{background:var(--panel-2);color:var(--text)}
.chi.unread{color:var(--text);font-weight:600}
.chi .chn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chhash{width:18px;text-align:center;color:var(--muted);font:600 14px var(--f-mono);flex:none}
.nbadge.soft{background:var(--line-2);color:var(--text)}
.chatwrap{flex:1;min-height:0;display:flex}
.chat{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;max-width:1100px;margin:0 auto;width:100%}
.chhead{display:flex;align-items:center;gap:12px;padding:8px 20px 10px;border-bottom:1px solid var(--line)}
.chtitle{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.chtitle b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}
.chtitle .muted{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chtools{display:flex;align-items:center;gap:4px;flex:none}
.chmembers{display:flex;align-items:center;gap:0;padding:3px 8px;border-radius:8px;border:1px solid var(--line-2)}
.chmembers .cav{margin-left:-4px;box-shadow:0 0 0 2px var(--bg)}.chmembers .cav:first-child{margin-left:0}
.chmembers .mono{margin-left:6px;font-size:12px;color:var(--text-2)}
.chsearch{padding:8px 20px;border-bottom:1px solid var(--line)}
.chsearch input{width:100%;box-sizing:border-box;font:inherit;padding:8px 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text)}
.chsres{display:flex;flex-direction:column;max-height:260px;overflow:auto;margin-top:6px}
.chsres button{display:flex;flex-direction:column;gap:2px;text-align:left;padding:7px 8px;border-radius:8px;font-size:13.5px}
.chsres button:hover{background:var(--panel-2)}
.chsres mark{background:var(--accent-soft);color:var(--text);border-radius:3px}
.chmsgs{flex:1;min-height:0;overflow-y:auto;padding:12px 20px 8px;overscroll-behavior:contain}
.chload,.chempty{text-align:center;margin:40px auto;max-width:420px}
.chstart{margin:16px 0 8px;color:var(--text-2);font-size:13px}
.chmore{text-align:center;margin:6px 0}
.chday,.chunread{display:flex;align-items:center;gap:10px;margin:14px 0 6px;font:12px var(--f-mono);color:var(--muted)}
.chday::before,.chday::after,.chunread::before,.chunread::after{content:'';flex:1;height:1px;background:var(--line)}
.chunread{color:var(--accent)}.chunread::before,.chunread::after{background:var(--accent-line)}
.msg{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;padding:5px 8px;margin:0 -8px;border-radius:10px}
.msg.cont{padding-top:1px}
.msg:hover{background:color-mix(in srgb,var(--panel-2) 55%,transparent)}
.msg.hl{background:var(--accent-soft);transition:background 1s}
.mavb{padding:0;align-self:start;margin-top:2px}.mavb .cav{width:36px;height:36px;font-size:15px}
.mtime{font-size:10.5px;color:var(--muted);opacity:0;text-align:right;padding-top:5px}
.msg:hover .mtime{opacity:1}
.mbody{min-width:0}
.mhead{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.mname{font-weight:650;font-size:14.5px;padding:0;color:var(--text)}.mname:hover{text-decoration:underline}
.mtitle{font-size:12px}.mhead .mono{font-size:11px}
.mtext{font-size:15px;line-height:1.5;overflow-wrap:anywhere;white-space:normal}
.mtext a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.mtext code{font:13px var(--f-mono);background:var(--bg-2);padding:1px 5px;border-radius:5px}
.mcode{font:13px/1.5 var(--f-mono);background:var(--bg-2);border:1px solid var(--line);padding:10px 12px;border-radius:8px;overflow-x:auto;margin:4px 0;white-space:pre}
.medited{font-size:11px}
.msg.del .mtext{font-style:italic}
.mmention{display:inline;padding:0 4px;border-radius:5px;background:var(--accent-soft);color:var(--accent);font:inherit;font-weight:600}
.mmention.me{background:var(--accent);color:var(--accent-ink)}
.mpage{display:inline;padding:0 5px;border-radius:5px;border:1px solid var(--line-2);font:inherit;color:var(--text)}
.mpage:hover{border-color:var(--accent-line)}.mpage.gone{color:var(--muted)}
.mreply{display:block;max-width:100%;text-align:left;margin:2px 0 4px;padding:3px 10px;border-left:3px solid var(--accent-line);border-radius:4px;background:var(--bg-2);font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mimgs{display:grid;gap:4px;margin:6px 0 2px;max-width:min(520px,100%)}
.mimgs.n1{grid-template-columns:1fr}.mimgs.n2,.mimgs.n4{grid-template-columns:1fr 1fr}.mimgs.n3{grid-template-columns:2fr 1fr 1fr}
.mimg{padding:0;border-radius:10px;overflow:hidden;background:var(--bg-2);display:block}
.mimg img{display:block;width:100%;height:100%;object-fit:cover;max-height:360px}
.mimgs:not(.n1) .mimg img{aspect-ratio:1;height:auto}
.mimgs.n1 .mimg img{object-fit:contain;max-height:320px;width:auto;max-width:100%}
.mvideo{display:block;max-width:min(520px,100%);max-height:360px;border-radius:10px;margin:6px 0;background:#000}
.maudio{display:block;margin:6px 0 0;max-width:100%}.mfname{font-size:11px}
.mfile{display:flex;align-items:center;gap:10px;max-width:min(520px,100%);margin:6px 0;padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--panel)}
.mfico{font-size:24px;line-height:1;flex:none}
.mft{flex:1;min-width:0;display:flex;flex-direction:column}
.mft b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mpdf{display:block;width:min(720px,100%);height:520px;border:1px solid var(--line-2);border-radius:10px;margin:4px 0;background:#fff}
.voice{display:flex;align-items:center;gap:10px;margin:6px 0;padding:6px 12px 6px 6px;border-radius:22px;background:var(--panel-2);border:1px solid var(--line);width:fit-content;max-width:100%;cursor:pointer}
.vplay{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:13px;flex:none;display:grid;place-items:center}
.vwave{display:flex;align-items:center;gap:2px;height:28px;width:min(220px,40vw)}
.vwave i{flex:1;min-width:2px;border-radius:2px;background:var(--muted);opacity:.55}
.vwave i.on{background:var(--accent);opacity:1}
.vdur{font-size:12px;color:var(--text-2);min-width:34px}
.mrx{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.rx{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg-2);font-size:13px}
.rx.on{border-color:var(--accent);background:var(--accent-soft)}.rx .mono{font-size:11.5px}
.rx.add{opacity:0}.msg:hover .rx.add{opacity:1}
.mseen{font-size:11px;color:var(--muted);margin-top:2px}
.mact{position:absolute;right:8px;top:-14px;display:none;gap:1px;padding:2px;border-radius:9px;border:1px solid var(--line-2);background:var(--pop);box-shadow:0 6px 18px rgba(0,0,0,.25)}
.msg:hover .mact,.msg:focus-within .mact{display:flex}
.mact button{width:30px;height:28px;border-radius:7px;font-size:14px}
.mact button:hover{background:var(--panel-2)}
.rxpick{position:absolute;z-index:20;display:flex;gap:2px;padding:4px;border-radius:12px;border:1px solid var(--line-2);background:var(--pop);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.rxpick button{width:34px;height:34px;border-radius:8px;font-size:18px}.rxpick button:hover{background:var(--panel-2)}
.chnew{position:absolute;left:50%;transform:translateX(-50%);bottom:96px;z-index:6;padding:6px 14px;border-radius:16px;background:var(--accent);color:var(--accent-ink);font:600 13px var(--f-ui);box-shadow:0 6px 18px rgba(0,0,0,.3)}
.chtyping{min-height:20px;padding:0 20px;font-size:12.5px;color:var(--text-2);display:flex;align-items:center;gap:6px}
.tdots{display:inline-flex;gap:3px}.tdots i{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:tdot 1.2s infinite}
.tdots i:nth-child(2){animation-delay:.2s}.tdots i:nth-child(3){animation-delay:.4s}
@keyframes tdot{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-2px)}}
@media (prefers-reduced-motion:reduce){.tdots i{animation:none}}
.chcomp{position:relative;margin:0 20px 16px;border:1px solid var(--line-2);border-radius:14px;background:var(--panel);box-shadow:0 2px 0 rgba(0,0,0,.12)}
.chcomp:focus-within{border-color:var(--accent-line)}
.chbar{display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line);font-size:13px}
.chbar .mono{color:var(--accent);flex:none}
.cbtext{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}
.chatt{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line)}
.att{display:flex;align-items:center;gap:8px;max-width:240px;padding:4px 6px 4px 4px;border-radius:9px;background:var(--bg-2);border:1px solid var(--line)}
.att img{width:40px;height:40px;object-fit:cover;border-radius:6px}
.att.up{opacity:.65}
.attn{display:flex;flex-direction:column;min-width:0;font-size:12.5px}
.attn,.attn .mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att button{color:var(--muted);padding:2px 4px}
.chinput{display:flex;align-items:flex-end;gap:4px;padding:6px}
.chinput textarea{flex:1;min-width:0;resize:none;border:0;background:none;color:var(--text);font:15px/1.45 var(--f-ui);padding:7px 6px;max-height:40vh;outline:none}
.chib{width:36px;height:36px;border-radius:9px;color:var(--text-2);font-size:18px;flex:none}
.chib:hover{background:var(--panel-2);color:var(--text)}
.chib.on{background:var(--t-red);color:var(--t-red-i)}
.chsend{width:38px;height:36px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-size:16px;flex:none}
.chrec{display:flex;align-items:center;gap:10px;padding:8px 12px}
.recdot{width:10px;height:10px;border-radius:50%;background:#e5484d;animation:tdot 1s infinite}
.reclevel{flex:1;display:flex;align-items:center;gap:2px;height:28px}
.reclevel i{flex:1;max-width:5px;height:100%;border-radius:2px;background:var(--accent);transform:scaleY(.1);transition:transform .1s}
.chro{text-align:center;margin:8px 20px 18px}
.chdrop{position:absolute;inset:8px;z-index:30;display:grid;place-items:center;border:2px dashed var(--accent);border-radius:16px;background:color-mix(in srgb,var(--bg) 82%,transparent);font:600 17px var(--f-ui);color:var(--accent);pointer-events:none}
.atmenu{position:absolute;left:8px;bottom:calc(100% + 6px);z-index:20;width:min(340px,calc(100% - 16px));max-height:300px;overflow:auto;padding:6px;border-radius:12px;border:1px solid var(--line-2);background:var(--pop);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.atmenu p{margin:4px 6px;font-size:11px}
.atmenu button{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:8px;text-align:left;font-size:14px;min-width:0}
.atmenu button.on,.atmenu button:hover{background:var(--panel-2)}
.atmenu button .muted{margin-left:auto;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* всплывающие окна чатов */
.pop.newchat,.pop.chset{width:min(360px,calc(100vw - 16px));padding:14px;display:flex;flex-direction:column;gap:10px;max-height:80vh;overflow:auto}
.pop.newchat .seg{display:flex;gap:4px}.pop.newchat .seg button{flex:1;padding:7px;border-radius:8px;border:1px solid var(--line-2);font-size:13.5px}
.pop.newchat .seg button.on{border-color:var(--accent);background:var(--accent-soft)}
.nclist{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow:auto}
.nclist.sm{max-height:200px}
.nclist>button{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;text-align:left}
.nclist>button:hover{background:var(--panel-2)}
.nclist>button>span:last-child{display:flex;flex-direction:column;min-width:0}
.nclist .muted{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csrow{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:13.5px}
.csname{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csadd{display:flex;gap:6px}.csadd select{flex:1;min-width:0;font:inherit;padding:6px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text)}
.pop.chfiles{width:min(420px,calc(100vw - 16px));padding:14px;display:flex;flex-direction:column;gap:8px;max-height:80vh;overflow:auto}
.cfimgs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.cfimgs button{padding:0;border-radius:6px;overflow:hidden}.cfimgs img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.cfrow{display:flex;align-items:center;gap:8px;padding:6px;border-radius:8px;font-size:13.5px;color:var(--text)}
.cfrow:hover{background:var(--panel-2)}.cfn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pop.pcard{width:min(300px,calc(100vw - 16px));padding:18px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.pcname{font-size:17px}.pcstatus{font-size:13px;padding:2px 10px;border-radius:10px;background:var(--panel-2)}
.pcrows{display:flex;flex-direction:column;gap:4px;font-size:13.5px;margin:6px 0}.pcrows a{color:var(--text)}
.pcabout{font-size:13.5px;color:var(--text-2);margin:2px 0 6px;white-space:pre-line}
/* профиль */
.profhead{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.profhead>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.profav{position:relative;padding:0;border-radius:50%;flex:none}
.profav>span:last-child{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.55);color:#fff;font-size:11px;opacity:0;transition:opacity .15s}
.profav:hover>span:last-child,.profav:focus-visible>span:last-child{opacity:1}
.profgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.profgrid .wide{grid-column:1/-1}
.profgrid textarea{font:inherit;padding:8px 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text);resize:vertical}
.profacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media (max-width:860px){
  .chhead{padding:6px 12px 8px}.chmsgs{padding:10px 12px 6px}.chcomp{margin:0 8px 10px}.chsearch{padding:8px 12px}.chtyping{padding:0 12px}
  .msg{grid-template-columns:32px minmax(0,1fr);gap:8px}.mavb .cav{width:30px;height:30px}
  .mact{right:4px}.chtitle .chtopic,.chtitle .muted{display:none}
  .profgrid{grid-template-columns:1fr}.mpdf{height:420px}
  .chnew{bottom:84px}
}
.chpage{font:inherit;font-size:13px;padding:2px 8px;border-radius:7px;border:1px solid var(--line-2);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}.chpage:hover{border-color:var(--accent-line);color:var(--text)}
/* свои значки страниц (icons.js) */
.pic{width:1.15em;height:1.15em;vertical-align:-.2em;flex:none}
.tiico .pic,.sres .tiico .pic{width:18px;height:18px;vertical-align:-4px}
.pic.dflt{color:var(--muted)}
.pgicon .pic{width:64px;height:64px;vertical-align:top;stroke-width:1.4}
.pgicon .pic.dflt{color:var(--text-2);opacity:.55}
.page.oncover.l-classic .pgicon .pic{filter:drop-shadow(0 6px 16px rgba(0,0,0,.4))}
.emo{font-style:normal}
.ic-gray{color:var(--t-gray-i)}.ic-brown{color:var(--t-brown-i)}.ic-orange{color:var(--t-orange-i)}.ic-yellow{color:var(--t-yellow-i)}.ic-green{color:var(--t-green-i)}.ic-blue{color:var(--t-blue-i)}.ic-purple{color:var(--t-purple-i)}.ic-pink{color:var(--t-pink-i)}.ic-red{color:var(--t-red-i)}
.tplico .pic{width:30px;height:30px}
.mpage .pic,.chpage .pic,.mention .pic,.atav .pic,.rchip .pic{width:15px;height:15px;vertical-align:-3px}
.pop.iconpick{width:min(430px,calc(100vw - 16px));padding:0;display:flex;flex-direction:column;max-height:min(560px,80vh)}
.iphead{display:flex;gap:10px;align-items:center;padding:10px 12px 6px}
.iphead input{flex:1;min-width:0;font:inherit;font-size:14px;padding:8px 10px;border-radius:9px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text)}
.iphead .dbtext{font-size:13px;white-space:nowrap}
.ipcolors{display:flex;gap:4px;padding:2px 12px 6px}
.ipcolors .sw{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;border:1px solid transparent}
.ipcolors .sw i{width:14px;height:14px;border-radius:50%;background:currentColor}
.ipcolors .sw0 i{background:none;box-shadow:inset 0 0 0 2px currentColor}
.ipcolors .sw0{color:var(--text-2)}
.ipcolors .sw.on{border-color:var(--accent);background:var(--panel-2)}
.iptabs{display:flex;flex-wrap:wrap;gap:0 2px;padding:0 8px;border-bottom:1px solid var(--line)}
.iptabs button{flex:none;padding:7px 9px;font-size:13px;color:var(--text-2);border-bottom:2px solid transparent;white-space:nowrap}
.iptabs button.on{color:var(--text);border-color:var(--accent)}
.ipbox{flex:1;min-height:0;overflow:auto;padding:4px 10px 12px;color:var(--text)}
.ipbox>.mono{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:10px 2px 4px;scroll-margin-top:4px}
.ipgrid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}
.ipgrid button{height:44px;border-radius:9px;display:grid;place-items:center}
.ipgrid button .pic{width:24px;height:24px}
.ipgrid button:hover{background:var(--panel-2)}
.ipgrid button.on{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}
@media (max-width:860px){ .ipgrid{grid-template-columns:repeat(6,1fr)} .ipgrid button{height:48px} }
/* плитка, значки компании, логотип */
.wic{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;background:currentColor;-webkit-mask:var(--src) center/contain no-repeat;mask:var(--src) center/contain no-repeat}
.ptile{display:inline-grid;place-items:center;width:1.4em;height:1.4em;border-radius:.34em;vertical-align:-.3em;background:color-mix(in srgb,currentColor 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 28%,transparent)}
.ptile.ic-none{color:var(--text-2)}
.ptile>.pic,.ptile>.wic{width:62%;height:62%;vertical-align:0}
.tiico .ptile{width:20px;height:20px;border-radius:6px;vertical-align:-5px}
.tiico .ptile .pic{width:13px;height:13px}
.pgicon .ptile{width:76px;height:76px;border-radius:20px}
.pgicon .ptile .pic{width:44px;height:44px;stroke-width:1.5}
.pgicon .wic{width:64px;height:64px}
.tiico .wic{width:18px;height:18px;vertical-align:-4px}
.wsico .pic,.wsico .wic{width:70%;height:70%;vertical-align:0}
.wsico .ptile{width:100%;height:100%;border-radius:inherit}
.wsico .icoimg{width:100%;height:100%;border-radius:inherit;object-fit:cover;vertical-align:0}
.wsico.lg{width:44px;height:44px;font-size:20px;border-radius:12px;display:inline-grid;place-items:center;background:var(--panel-2);overflow:hidden}
.wsicorow{display:flex;align-items:center;gap:12px;margin:4px 0}
.chhash .pic,.chhash .wic{width:16px;height:16px;vertical-align:-3px}
.chhash .ptile{width:18px;height:18px;border-radius:5px}
.chhash .icoimg{width:16px;height:16px}
.chtitle .chhash .pic{width:20px;height:20px}
.iptile{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:3px 9px 3px 4px;border-radius:8px;border:1px solid var(--line-2);font-size:12.5px;color:var(--text-2)}
.iptile .ptile{width:22px;height:22px;border-radius:6px}
.iptile.on{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}
.ipbox.tiled .ipgrid button:not(.ipadd){background:color-mix(in srgb,currentColor 12%,transparent);margin:2px;height:40px}
.ipw{position:relative;display:grid}
.ipdel{position:absolute;top:-2px;right:-2px;width:18px;height:18px!important;border-radius:50%;background:var(--pop)!important;border:1px solid var(--line-2);font-size:9px;display:none!important;place-items:center;color:var(--text-2)}
.ipw:hover .ipdel{display:grid!important}
.ipadd{border:1px dashed var(--line-2)!important;color:var(--text-2);font-size:18px}
.ipgrid button .wic{width:24px;height:24px}
.iphint{margin:4px 2px 0}
/* значки у вариантов базы */
.tag .pic{width:13px;height:13px;margin-right:4px;vertical-align:-2px}
.oicon{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:13px;flex:none}
.oicon .pic{width:15px;height:15px}
.oicon.on{box-shadow:0 0 0 2px var(--accent)}
.opick{padding:6px 0 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
.opgrid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-height:170px;overflow:auto;margin-top:6px}
.opgrid button{height:30px;border-radius:7px;display:grid;place-items:center}
.opgrid button .pic{width:17px;height:17px}
.opgrid button:hover,.opgrid button.on{background:var(--panel-2)}
.atmenu .atav .pic{width:16px;height:16px}
.wsico:has(.pic,.wic,.icoimg,.ptile){background:var(--panel-2);color:var(--text)}
.ipcolors{flex-wrap:wrap;row-gap:6px}
/* прозрачные обложки: спрайты прямо по фону страницы; тёмная тема — белые 65%, светлая — тёмно-синие, еле видные */
:root{--sprite-rgb:255,255,255;--sprite-a:.65}
:root[data-theme="light"]{--sprite-rgb:22,42,98;--sprite-a:.2}
.cover.s-sprite{background:transparent}
.cover.s-sprite .coverfade{display:none}
.cover.s-sprite .covercv{height:100%;transform:none;-webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent)} /* плавно растворяется к низу обложки */
.cstyles canvas.sp{background:var(--bg)}
/* прозрачная обложка: значок и заголовок заходят на неё на половину её высоты (замерено: значок начинается на ½ выше края обложки) */
.page.onsprite.l-classic,.page.onsprite.l-band{position:relative;z-index:2;pointer-events:none}
.page.onsprite.l-classic>*,.page.onsprite.l-band>*{pointer-events:auto}
.page.onsprite.l-classic{margin-top:-112px}
.page.onsprite.l-band{margin-top:-76px}
@media (max-width:860px){ .page.onsprite.l-classic{margin-top:-74px} .page.onsprite.l-band{margin-top:-62px} }
@media print{ .page.onsprite{margin-top:0!important} }
