/* ДК Яуза — оформление в стиле HOLLOW. Общий файл для всех страниц. */

/* ── токены: тёмная тема по умолчанию ── */
:root{
  --sheet:#080808; --raise:#151515; --disc:#101010;
  --txt:#f7f7f7; --mut:#9a9a9a;
  --acc:#f2f2f2; --acc-txt:#111;
  --hi:rgba(255,255,255,.06); --sh:rgba(0,0,0,.8);
  --out:-3px -3px 8px var(--hi), 4px 4px 10px var(--sh);
  --out2:-4px -4px 10px var(--hi), 6px 7px 14px var(--sh);
  --in:inset 3px 3px 7px var(--sh), inset -2px -2px 6px var(--hi);
  --edge:rgba(255,255,255,.08);
  --line:rgba(255,255,255,.07);
  /* цвета меток */
  --c-blue:#6e9bff; --c-red:#ff6b5e; --c-green:#3ee29a; --c-violet:#b58cff;
  --c-amber:#ffc53d; --c-teal:#3fe0e8; --c-pink:#ff5fa8; --c-grey:#9a9a9a;
  --c-orange:#ff9340; --c-lime:#b0ec4a; --c-indigo:#8f8cff; --c-sky:#4fc8ff;
  --tint:24%;
  --ok:#3ee29a; --bad:#ff6b5e;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --sheet:#ececec; --raise:#f3f3f3; --disc:#f7f7f7;
  --txt:#1b1d1f; --mut:#7b8188;
  --acc:#1f2226; --acc-txt:#f5f5f5;
  --hi:rgba(255,255,255,.95); --sh:rgba(0,0,0,.15);
  --out:-4px -4px 9px var(--hi), 5px 6px 10px var(--sh);
  --out2:-5px -5px 10px var(--hi), 6px 7px 12px var(--sh);
  --in:inset 3px 3px 6px var(--sh), inset -3px -3px 6px var(--hi);
  --edge:rgba(255,255,255,.8);
  --line:rgba(0,0,0,.07);
  --c-blue:#2f63d6; --c-red:#d04a3a; --c-green:#1f9a63; --c-violet:#7a4fd6;
  --c-amber:#b7791f; --c-teal:#138a93; --c-pink:#d23c82; --c-grey:#80868d;
  --c-orange:#c8641a; --c-lime:#5d8f14; --c-indigo:#5250c8; --c-sky:#1f86c2;
  --tint:14%;
  --ok:#1f9a63; --bad:#d04a3a;
  color-scheme:light;
}

*{box-sizing:border-box}
html,body{margin:0;background:var(--sheet);color:var(--txt)}
body{font:14px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100vh}
[hidden]{display:none!important}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
a{color:inherit;text-decoration:none}
svg.i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ── каркас: слева колонка разделов, справа страница ── */
.shell{display:grid;grid-template-columns:84px 1fr;min-height:100vh}
.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 0 18px}
.rail .logo{width:56px;margin-bottom:16px;display:block}
.rail .r{width:60px;padding:10px 0 8px;border-radius:15px;text-align:center;color:var(--mut);position:relative;display:block;
  transition:color .15s,box-shadow .19s cubic-bezier(.34,1.5,.64,1)}
.rail .r:hover{color:var(--txt)}
.rail .r svg.i{display:block;margin:0 auto 4px;width:20px;height:20px}
.rail .r .t{font-size:9px;letter-spacing:.06em;text-transform:uppercase;line-height:1.15;display:block}
.rail .r.on{color:var(--txt);box-shadow:var(--in)}
.rail .r.on svg.i{color:var(--sec,var(--txt))}
.rail .r.off{opacity:.35;pointer-events:none}
.rail .sp{flex:1}
.bd{position:absolute;top:4px;right:9px;min-width:16px;height:16px;border-radius:8px;background:var(--c-pink);color:#fff;
  font-size:9.5px;font-weight:700;display:grid;place-items:center;padding:0 4px;line-height:1}
.ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--mut);box-shadow:var(--out);
  transition:box-shadow .19s cubic-bezier(.34,1.5,.64,1),color .15s,transform .19s cubic-bezier(.34,1.5,.64,1)}
.ic:hover{color:var(--txt)}
.ic:active,.ic.on{box-shadow:var(--in);color:var(--txt)}
.ic svg.i{width:17px;height:17px}

.page{min-width:0;display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:1440px;margin:0 auto}
.hdr{display:flex;align-items:center;gap:12px;padding:26px 30px 0;min-height:66px}
.hdr h1{font-size:21px;font-weight:650;margin:0;letter-spacing:-.02em;white-space:nowrap}
.hdr .sub{color:var(--mut);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdr .sp{flex:1}
.hdr .mlogo{display:none;height:30px}
.hdr .ic{flex:none}
.show-m{display:none}
main{flex:1;padding:6px 30px 40px}
.state{display:inline-flex;align-items:center;gap:7px;color:var(--mut);font-size:12px;white-space:nowrap}
.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;background:var(--c,var(--mut))}
.state.ok .dot{background:var(--c-green)}
.state.busy .dot{background:var(--c-amber);animation:pulse 1s ease-in-out infinite}
.state.err .dot{background:var(--bad)}
.state.err{color:var(--bad)}
@keyframes pulse{50%{opacity:.3}}

/* ── кнопки ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:19px;font-size:13px;
  white-space:nowrap;color:var(--txt);box-shadow:var(--out);
  transition:box-shadow .19s cubic-bezier(.34,1.5,.64,1),transform .19s cubic-bezier(.34,1.5,.64,1),filter .15s}
.btn:active{box-shadow:var(--in);transform:translate(1px,1px) scale(.985)}
.btn.p{background:var(--acc);color:var(--acc-txt);font-weight:600}
.btn.sm{padding:6px 12px;font-size:12px}
.btn.danger{color:var(--bad)}
.btn svg.i{width:15px;height:15px}
.btn[disabled]{opacity:.5;pointer-events:none}

/* ── вкладки-фильтры ── */
.tabs{display:flex;gap:6px;padding:14px 30px 12px;align-items:center;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;padding:7px 14px;border-radius:16px;color:var(--mut);font-size:13px;display:inline-flex;align-items:center;gap:7px;
  transition:box-shadow .19s cubic-bezier(.34,1.5,.64,1),color .15s}
.tab:hover{color:var(--txt)}
.tab.on{color:var(--txt);font-weight:600;box-shadow:var(--in)}
.tab.on[style*="--c"]{color:var(--c);background:color-mix(in srgb,var(--c) 10%,transparent)}
.tab .n{font-size:11px;color:var(--mut);font-weight:500;font-variant-numeric:tabular-nums}
.tabs .gap{flex:1;min-width:8px}
/* выпадающий фильтр */
.tabs{flex-wrap:wrap;overflow:visible;row-gap:8px}
.tab.dd{box-shadow:var(--out);color:var(--txt);max-width:100%}
.tab.dd .dt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.tab.dd svg.i{width:14px;height:14px;color:var(--mut);margin-right:-3px;flex:none}
.tab.dd.on{box-shadow:var(--in)}

.seg{display:inline-flex;border-radius:17px;padding:3px;gap:3px;box-shadow:var(--in)}
.seg button{padding:6px 13px;border-radius:14px;font-size:12px;color:var(--mut);white-space:nowrap}
.seg button.on{color:var(--txt);font-weight:600;background:var(--raise);box-shadow:var(--out)}

/* ── цветные метки ── */
.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:11px;font-size:11.5px;font-weight:600;white-space:nowrap;
  color:color-mix(in srgb,var(--c,var(--mut)) 88%,var(--txt));background:color-mix(in srgb,var(--c,var(--mut)) var(--tint),var(--raise));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,var(--mut)) 22%,transparent);letter-spacing:.01em;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tag .dot{background:var(--c)}
.tag.up{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}
.tag.btn-like{cursor:pointer}
.tag.btn-like:active{transform:translate(1px,1px)}

/* ── подпись группы ── */
.gh{display:flex;align-items:center;gap:10px;margin:22px 0 10px}
.gh:first-child{margin-top:6px}
.gh b{font-size:14px;font-weight:650;letter-spacing:-.01em;white-space:nowrap}
.gh span{font-weight:600;font-size:9.5px;line-height:1;letter-spacing:.16em;color:var(--mut);text-transform:uppercase;white-space:nowrap}
.gh .today{font-weight:700;font-size:9px;line-height:1;letter-spacing:.14em;padding:5px 8px;border-radius:10px;background:var(--c-pink);color:#fff}
.gh .late{color:var(--bad)}
.gh hr{flex:1;border:0;height:1px;background:var(--line);margin:0}

/* ── строка / карточка ── */
/* строка всегда в своём «пузыре»; при наведении приподнимается и подсвечивается */
.item{display:flex;align-items:center;gap:14px;padding:11px 14px;border-radius:14px;margin-bottom:8px;cursor:pointer;position:relative;
  background:color-mix(in srgb,var(--txt) 3%,var(--raise));box-shadow:-2px -2px 5px var(--hi),3px 3px 7px var(--sh),inset 0 0 0 1px var(--edge);
  transition:box-shadow .22s cubic-bezier(.34,1.5,.64,1),transform .22s cubic-bezier(.34,1.5,.64,1),background .2s}
.item:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--txt) 6%,var(--raise));
  box-shadow:-4px -4px 10px var(--hi),7px 9px 18px var(--sh),inset 0 0 0 1px color-mix(in srgb,var(--pc,var(--txt)) 30%,transparent)}
.item:active{box-shadow:var(--in);transform:translate(1px,1px) scale(.995)}
.item .tm{width:108px;flex:none;font-variant-numeric:tabular-nums;font-weight:600;font-size:13px;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.item .tm .tag{font-size:10px;padding:2px 8px}
/* цветная полоска слева: зал у мероприятия, статус у задачи */
.item.stripe{padding-left:18px}
.item.stripe::before{content:'';position:absolute;left:4px;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--pc,transparent)}
.item.stripe.past::before{opacity:.35}
.item .tm small{display:block;font-weight:500;color:var(--mut);font-size:11px}
.item .nm{flex:1;min-width:0;font-size:14px;line-height:1.35}
.item .nm .x{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:3px}
.item .meta .tag{font-size:10.5px;padding:2px 8px}
.item .chev{color:var(--mut);width:14px;text-align:center;flex:none;opacity:.6}
.item.past .tm,.item.past .nm{color:var(--mut)}
.item.past .tag{filter:grayscale(.85);opacity:.7}
.item.past .chev{opacity:.3}
.item.done>:not(.go):not(.upfill),.item.done::before{opacity:.55}
.item.done .nm .x{text-decoration:line-through;text-decoration-color:var(--mut)}

.go{flex:none;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:18px;background:var(--acc);color:var(--acc-txt);
  font-size:12px;font-weight:650;white-space:nowrap;box-shadow:var(--out);transition:transform .19s cubic-bezier(.34,1.5,.64,1)}
.go:hover{transform:translateY(-1px)}
.go svg.i{width:14px;height:14px;stroke-width:2.2}
.go-ph{flex:none;width:42px}
.go-ic{width:42px;height:42px;padding:0;border-radius:50%;justify-content:center;background:#f6f6f4;color:#141414;
  box-shadow:0 0 0 1px rgba(255,255,255,.5),0 0 14px 2px rgba(255,255,255,.38),0 0 34px 6px rgba(255,255,255,.16)}
:root[data-theme="light"] .go-ic{background:#fff;color:#141414;box-shadow:0 0 0 1px rgba(0,0,0,.05),0 4px 14px rgba(0,0,0,.14),0 0 22px 4px rgba(255,255,255,.9)}
.go-ic svg.i{width:19px;height:19px;stroke-width:2}

.empty{text-align:center;color:var(--mut);padding:70px 20px;line-height:1.7}
.empty b{display:block;color:var(--txt);font-size:16px;margin-bottom:6px;font-weight:600}
.more{display:flex;justify-content:center;margin:18px 0 6px}
.loader{display:flex;justify-content:center;padding:80px 0}
.loader span{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--mut);animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

:root:not([data-theme="light"]) .item .meta .tag,:root:not([data-theme="light"]) .item .tm .tag{color:color-mix(in srgb,var(--c,var(--mut)) 92%,#fff)}

/* ── всплывающее меню ── */
.menu{position:fixed;z-index:900;min-width:200px;padding:6px;border-radius:14px;background:var(--raise);
  box-shadow:-5px -5px 12px var(--hi),8px 10px 24px var(--sh),0 14px 40px rgba(0,0,0,.2);animation:pop .14s ease}
.menu .mi{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:13px;cursor:pointer;white-space:nowrap}
.menu .mi:hover{background:var(--sheet)}
.menu .mi.cur::after{content:'✓';margin-left:auto;color:var(--mut);font-size:12px}
.menu .mi .n{margin-left:auto;padding-left:14px;font-size:11.5px;color:var(--mut);font-variant-numeric:tabular-nums}
.menu .mi.cur:has(.n)::after{margin-left:10px}
.menu{max-height:min(70vh,520px);overflow-y:auto}
@keyframes pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ── шторка / окно ── */
.dim{position:fixed;inset:0;z-index:800;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;animation:fade .18s ease}
:root[data-theme="light"] .dim{background:rgba(0,0,0,.25)}
@keyframes fade{from{opacity:0}}
.sh{width:min(520px,94vw);max-height:88vh;overflow:auto;background:var(--raise);border-radius:22px;padding:22px 22px 20px;
  box-shadow:0 24px 70px rgba(0,0,0,.45);animation:up .24s cubic-bezier(.2,.9,.3,1)}
@keyframes up{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.sh .grab{display:none}
.sh h2{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:0 0 4px;line-height:1.25;padding-right:30px}
.sh .x{position:absolute;right:16px;top:16px}
.sh .meta{color:var(--mut);font-size:13px;margin-bottom:6px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.lbl{font-weight:600;font-size:9.5px;line-height:1;letter-spacing:.15em;color:var(--mut);text-transform:uppercase;margin:18px 0 9px}
.txt{font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.txt a{color:var(--c-blue);text-decoration:underline;text-underline-offset:2px}
.fld{width:100%;border:0;border-radius:14px;padding:12px 14px;font:inherit;font-size:15px;background:var(--sheet);color:var(--txt);outline:none;
  box-shadow:var(--in);resize:vertical;line-height:1.4}
.fld::placeholder{color:var(--mut)}
textarea.fld{min-height:52px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pick{display:flex;flex-wrap:wrap;gap:8px}
.pick.who{gap:10px}
.pick.who button{padding:11px 16px;font-size:15px;border-radius:16px}
.pick button{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:14px;font-size:13px;color:var(--mut);box-shadow:var(--out);
  transition:box-shadow .19s cubic-bezier(.34,1.5,.64,1),color .15s}
.pick button .dot{background:var(--c)}
.pick button.on{color:color-mix(in srgb,var(--c,var(--txt)) 88%,var(--txt));font-weight:600;box-shadow:var(--in);
  background:color-mix(in srgb,var(--c,var(--mut)) 12%,transparent)}
.acts{display:flex;gap:10px;margin-top:22px}
.acts .btn{flex:1;padding:13px;font-size:14px;border-radius:16px}
.acts .btn.danger{flex:none;padding:13px 18px}
.row2{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;font-size:14px;border-bottom:1px solid var(--line)}
.row2:last-child{border-bottom:0}
.row2 label{color:var(--mut)}
.sw{width:40px;height:23px;border-radius:12px;flex:none;position:relative;box-shadow:var(--in);transition:background .18s}
.sw::after{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:var(--raise);
  box-shadow:-1px -1px 3px var(--hi),2px 2px 4px var(--sh);transition:transform .2s cubic-bezier(.34,1.5,.64,1)}
.sw.on{background:var(--c-green);box-shadow:none}
.sw.on::after{transform:translateX(17px);background:#fff}
.note{color:var(--mut);font-size:12px;line-height:1.55;margin-top:14px}

/* ── настройка цветов меток ── */
.cr{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.cr:last-child{border-bottom:0}
.cr .tag{min-width:0;flex:0 1 auto}
.cr .sw8{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.cr .sw8 button{width:22px;height:22px;border-radius:50%;background:var(--c);box-shadow:var(--out);position:relative;flex:none}
.cr .sw8 button.auto{background:conic-gradient(var(--c-red),var(--c-amber),var(--c-green),var(--c-teal),var(--c-blue),var(--c-violet),var(--c-pink),var(--c-red));opacity:.55}
.cr .sw8 button.on{box-shadow:0 0 0 2px var(--sheet),0 0 0 4px var(--c,var(--txt))}
.cr .sw8 button.auto.on{opacity:1;box-shadow:0 0 0 2px var(--sheet),0 0 0 4px var(--txt)}
@media (max-width:760px){.cr .sw8{margin-left:0;width:100%;gap:5px;flex-wrap:nowrap;justify-content:space-between}.cr .sw8 button{width:23px;height:23px}}

/* выбор иконки приложения */
.aics{display:flex;gap:12px}
.aic{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 6px 10px;border-radius:16px;box-shadow:var(--out);font-size:12px;color:var(--mut)}
.aic img{width:54px;height:54px;border-radius:13px;display:block}
.aic .half{position:relative;width:54px;height:54px;border-radius:13px;overflow:hidden;display:block}
.aic .half img{position:absolute;inset:0;border-radius:0}
.aic .half img+img{clip-path:polygon(100% 0,100% 100%,0 100%)}
.aic.on{box-shadow:var(--in);color:var(--txt);font-weight:600}

/* ── уведомление ── */
.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);z-index:1000;padding:11px 20px;border-radius:20px;background:var(--raise);
  font-size:13px;opacity:0;transition:.22s;pointer-events:none;box-shadow:var(--out2),0 10px 30px rgba(0,0,0,.25);max-width:92vw;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{color:var(--bad)}

/* ── нижняя панель (телефон) ── */
.tb{display:none}
.fab{display:none}

/* ════════════ телефон ════════════ */
@media (max-width:760px){
  .shell{display:block}
  .rail{display:none}
  .hdr{padding:calc(env(safe-area-inset-top) + 14px) 18px 0;min-height:0}
  .hdr h1{font-size:28px;font-weight:750;letter-spacing:-.025em}
  .hdr .sub,.hdr .state span,.hdr .hide-m{display:none}
  .hdr .state.err span{display:inline;max-width:24vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
  .hdr .mlogo{display:block}
  .show-m{display:inline}
  .hide-m{display:none}
  .hdr .btn.p{display:none}
  .tabs{padding:12px 18px 10px}
  main{padding:4px 14px calc(110px + env(safe-area-inset-bottom))}
  .gh{margin:18px 4px 9px}
  .item{display:block;padding:13px 15px;margin-bottom:10px;border-radius:18px;background:var(--raise);box-shadow:var(--out)}
  .item:hover{transform:none}
  .item .tm{width:auto;display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12.5px}
  .item .tm .t.none{display:none}
  .item.stripe{padding-left:18px}
  .item .tm small{display:inline;margin-left:6px}
  .item .nm{font-size:15.5px;font-weight:600;line-height:1.3;margin-top:4px}
  .item .nm .x{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
  .item .chev{display:none}
  .item.past{background:none;box-shadow:inset 0 0 0 1px var(--line)}
  .go-ph{display:none}
  .tb{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:700;justify-content:space-around;
    padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--sheet) 88%,transparent);
    -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line)}
  .tb a{width:84px;height:52px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    color:var(--mut);font-size:10.5px;position:relative}
  .tb a.on{color:var(--txt);box-shadow:var(--in);font-weight:600}
  .tb a.on svg.i{color:var(--sec,var(--txt))}
  .tb svg.i{width:23px;height:23px}
  .tb .bd{top:3px;right:20px}
  .fab{display:grid;position:fixed;right:18px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:690;width:58px;height:58px;border-radius:50%;
    background:var(--acc);color:var(--acc-txt);place-items:center;box-shadow:0 10px 24px rgba(0,0,0,.35),var(--out)}
  .fab svg.i{width:24px;height:24px;stroke-width:2.2}
  .dim{align-items:flex-end}
  .sh{width:100%;max-height:92vh;border-radius:26px 26px 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));animation:upm .28s cubic-bezier(.2,.9,.3,1)}
  .sh .grab{display:block;width:40px;height:5px;border-radius:3px;background:var(--mut);opacity:.35;margin:0 auto 14px}
  .sh .x{display:none}
  @keyframes upm{from{transform:translateY(100%)}to{transform:none}}
  .toast{bottom:calc(96px + env(safe-area-inset-bottom))}
  .menu{left:12px!important;right:12px;top:auto!important;bottom:calc(20px + env(safe-area-inset-bottom));min-width:0;border-radius:20px;padding:8px}
  .menu .mi{padding:13px 14px;font-size:15px}
}
@media (hover:none){.item:hover{transform:none}.btn:hover,.go:hover{transform:none}}

/* ── без масштаба двойным тапом ── */
html{touch-action:manipulation;-webkit-text-size-adjust:100%}
/* ── заголовок фирменным шрифтом ── */
.hdr h1{min-width:0;flex:0 1 auto}
.hdr h1 .ttl{height:18px;width:auto;max-width:100%;object-fit:contain;object-position:left center;display:block;margin:0}
.hdr h1:has(.hn) .ttl{height:14px}
.hdr h1 .hn{display:block;font-size:11px;line-height:12px;font-weight:300;letter-spacing:.03em;color:color-mix(in srgb,var(--txt) 72%,var(--mut));margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ничего не вылезает вбок — страница не «ездит» и не уменьшается */
.shell,.page,main{max-width:100%;overflow-x:clip}
.hdr .ic,.hdr .mlogo,.hdr .btn{flex:none}
:root[data-theme="light"] .hdr h1 .ttl{filter:invert(1)}
/* ── реакции ── */
[data-rk]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.rxs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rxs:empty{display:none}
.norx .rxs .rc:not(.cm){display:none}
.rc{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border-radius:13px;font-size:14px;line-height:1.3;
  background:color-mix(in srgb,var(--txt) 6%,transparent);box-shadow:inset 0 0 0 1px var(--line)}
.rc b{font-size:12px;font-weight:600;color:var(--mut);font-variant-numeric:tabular-nums}
.rc.me{background:color-mix(in srgb,var(--c-blue) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-blue) 45%,transparent)}
.rc.me b{color:var(--txt)}
.rxp,.rxw{position:fixed;z-index:950;background:var(--raise);border-radius:24px;animation:pop .14s ease;
  box-shadow:-5px -5px 12px var(--hi),8px 10px 24px var(--sh),0 14px 40px rgba(0,0,0,.25),inset 0 0 0 1px var(--edge)}
.rxp{display:flex;gap:2px;padding:6px}
.rxp button{width:46px;height:46px;border-radius:50%;font-size:26px;display:grid;place-items:center;transition:transform .15s cubic-bezier(.34,1.5,.64,1)}
.rxp button:active{transform:scale(1.25)}
.rxp button.on{background:color-mix(in srgb,var(--c-blue) 20%,transparent)}
.rxw{padding:12px 14px;max-width:min(320px,calc(100vw - 20px));display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-radius:18px}
.rxw .rxwh{width:100%;font-size:20px;display:flex;align-items:center;gap:8px}
.rxw .rxwh span{font-size:12px;color:var(--mut)}
.rxw .btn{margin-top:4px}

/* нижняя панель стоит на месте: без «резинки» страницы и с фоном, уходящим под край экрана */
html,body{overscroll-behavior:none}
@media (max-width:760px){
  .tb{transform:translateZ(0);will-change:transform}
  .tb::after{content:'';position:absolute;left:0;right:0;top:100%;height:200px;background:var(--sheet)}
}

/* главная: приветствие мелкой тонкой строкой */
.hdr h1.hi{flex:0 1 auto;min-width:0;font-size:13px;font-weight:300;letter-spacing:.01em;color:color-mix(in srgb,var(--txt) 80%,var(--mut));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hdr{max-width:100%;box-sizing:border-box}
@supports not (overflow:clip){.shell{overflow-x:hidden}}

/* ── настройки: карточки-бабблы по категориям ── */
.sg{position:relative;background:color-mix(in srgb,var(--c) 6%,var(--raise));border-radius:22px;padding:14px 16px 10px;margin:12px 0;
  box-shadow:var(--out),inset 0 0 0 1px color-mix(in srgb,var(--c) 22%,transparent)}
.sgh{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:15px}
/* бабблы: плитки по две в ряд, раскрытая — на всю ширину */
.sgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:10px;margin:12px 0}
.sgrid>.sg{margin:0;padding:12px 14px}
.sgrid>.sg .sgh{width:100%;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;font-size:15px;text-align:left;cursor:pointer}
.sgrid>.sg .sgt{display:flex;flex-direction:column;min-width:0;flex:1}
.sgrid>.sg .sgt small{font-size:12px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sgrid>.sg .sgc{width:16px;height:16px;color:var(--mut);flex:none;transition:transform .2s}
.sgrid>.sg .sgb{display:none}
.sgrid>.sg.open{grid-column:1/-1;padding:14px 16px 10px}
.sgrid>.sg.open .sgh{margin-bottom:8px}
.sgrid>.sg.open .sgc{transform:rotate(180deg)}
.sgrid>.sg.open .sgb{display:block}
.sgi{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--c) 20%,transparent);color:var(--c)}
.sgi svg{width:17px;height:17px}
.sg>.lbl:first-child,.sg .lbl:first-of-type{margin-top:10px}
.sg .pick.ac button{padding:0;width:32px;height:32px;justify-content:center;border-radius:50%}
.sg .pick.ac button .dot{width:16px;height:16px}
.sg .pick.ac{margin:4px 0 4px}
.sg .pick.ac[hidden]{display:none}
/* обращение — личное объявление */
.ban .bto{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--mut);margin:-2px 0 6px}
.ban.priv{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 55%,transparent)}

/* телефон: документ не прокручивается вовсе; прокручивается только экран приложения (.shell),
   а нижняя панель прибита к низу экрана поверх него — ей не с чем «ехать» */
@media (max-width:760px){
  html,body{height:100%;overflow:hidden;overscroll-behavior:none}
  .shell{position:fixed;top:0;left:0;right:0;bottom:0;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
  .page{min-height:100%}
  main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .tb{position:fixed;left:0;right:0;bottom:0;z-index:700;transform:translateZ(0);will-change:auto;
    padding:5px 12px env(safe-area-inset-bottom);background:var(--sheet);-webkit-backdrop-filter:none;backdrop-filter:none}
  .tb::after{display:none}
  .tb a{width:80px;height:46px;gap:1px;border-radius:14px;font-size:10px}
  .tb svg.i{width:21px;height:21px}
  .fab{bottom:calc(env(safe-area-inset-bottom) + 70px)}
  .toast{bottom:calc(env(safe-area-inset-bottom) + 76px)}
}
/* роль: пользователь / администратор */
.adm{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 4px;padding:12px 14px;border-radius:18px;border:1px dashed color-mix(in srgb,var(--mut) 45%,transparent)}
.adm .seg button{padding:7px 12px}
.adm .admf{display:flex;gap:8px;align-items:center;flex:1 1 150px;min-width:0}
.adm .admf[hidden]{display:none}
.adm .admf .fld{width:100%;min-width:0;padding:8px 12px;font-size:14px;letter-spacing:.2em}
/* потянуть вниз — обновить */
.ptr{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 8px);width:38px;height:38px;border-radius:50%;background:var(--raise);box-shadow:var(--out);
  display:grid;place-items:center;opacity:0;transform:translate(-50%,-44px);z-index:600;pointer-events:none;color:var(--txt)}
.ptr svg{width:19px;height:19px}
.ptr.spin svg{animation:ptrspin .8s linear infinite}
.ptr.ready{background:var(--c-green);color:#fff}
#state{cursor:pointer}
@keyframes ptrspin{to{transform:rotate(360deg)}}

/* отменённое мероприятие: серое, зачёркнутое, с красной пометкой */
.cx{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bad);margin:0 8px 3px 0;vertical-align:1px}
.item.cancel{opacity:.62;box-shadow:inset 0 0 0 1px var(--line);background:none}
.item.cancel .x{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--bad) 70%,transparent);text-decoration-thickness:1.5px;color:var(--mut)}
.item.cancel .tm,.item.cancel .t{color:var(--mut)}
.item.cancel .tag{filter:grayscale(1);opacity:.7}
.item.cancel.stripe{--pc:var(--mut)!important}

/* комментарии */
.rc.cm svg{width:15px;height:15px;color:var(--mut)}
.rc.cm.new,.cmb.new{background:color-mix(in srgb,var(--c-blue) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-blue) 55%,transparent);animation:cmblink 1.1s ease-in-out infinite}
@keyframes cmblink{50%{background:color-mix(in srgb,var(--c-blue) 42%,transparent);box-shadow:inset 0 0 0 1px var(--c-blue),0 0 0 3px color-mix(in srgb,var(--c-blue) 22%,transparent)}}
@media (prefers-reduced-motion:reduce){.rc.cm.new,.cmb.new{animation:none}}
.rc.cm.new svg{color:var(--c-blue)}
.rxp .cmp svg{width:24px;height:24px;color:var(--mut)}
.cmt{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow-y:auto;margin:6px 0 10px;padding:2px}
.cmi{background:var(--sheet);border-radius:16px;padding:9px 12px;box-shadow:var(--in)}
.cmi.mine{background:color-mix(in srgb,var(--c-blue) 9%,var(--sheet))}
.cmh{display:flex;align-items:center;gap:8px}
.cmh time{font-size:11.5px;color:var(--mut);margin-left:auto}
.cmq{font-size:12px;color:var(--mut);margin-top:5px;border-left:2px solid var(--line);padding-left:8px}
.cmx{font-size:14.5px;line-height:1.5;margin-top:5px;white-space:pre-wrap;word-break:break-word}
.cma{display:flex;gap:14px;margin-top:4px}
.cma button{font-size:12px;color:var(--mut);padding:2px 0}
.cmf{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.cmf .fld{flex:1;min-height:44px;max-height:140px;resize:none}
.cmf .btn{width:48px;height:44px;padding:0;display:grid;place-items:center;flex:none}
.cmre{width:100%;font-size:12px;color:var(--mut);display:flex;align-items:center;gap:8px}
.cmre button{margin-left:auto;font-size:16px;color:var(--mut)}
.cmb svg{width:16px;height:16px}

.cma button{display:inline-flex;align-items:center;gap:4px}
.cma button svg{width:13px;height:13px}
.cma .dl{color:var(--bad)}
.cme{font-style:normal;font-size:11px;color:var(--mut)}
.rc.cm{padding-left:8px}
/* автор — маленькой подписью, как у цитаты */
.by{display:block;font-size:11px;line-height:1.3;color:var(--mut);margin-top:6px;letter-spacing:.01em}
.by::before{content:'— '}

/* ── файлы на Диске ── */
.files{margin-top:10px}
.files .fl:empty{display:none}
.files .fi{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:var(--raise);box-shadow:var(--out);margin-bottom:8px;min-width:0}
.files .fic{color:var(--mut);display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:9px;position:relative;overflow:hidden}
.files .fic svg.i{width:16px;height:16px}
.files .fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt);font-size:14px;text-decoration:none}
.files .fs{font-size:11.5px;color:var(--mut);white-space:nowrap}
.ic.sm{width:30px;height:30px;box-shadow:none;flex:none}
.ic.sm svg.i{width:15px;height:15px}
.ic.done{color:var(--c-green,#4caf7d)}
.files .drop{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;box-shadow:var(--in);color:var(--mut);font-size:13px;border:1.5px dashed transparent;transition:border-color .15s}
.files .drop>span{display:flex;align-items:center;gap:8px;flex:1 1 150px}
.files .drop svg.i{width:16px;height:16px}
.files .drop.over{border-color:var(--c-amber);color:var(--txt)}
.fprog{margin-top:8px;font-size:12px;color:var(--mut)}
.fprog .pb{height:5px;border-radius:3px;box-shadow:var(--in);overflow:hidden;margin-bottom:5px}
.fprog .pb i{display:block;height:100%;width:0;background:var(--c-amber);transition:width .2s}
.item.dropover{outline:2px dashed var(--c-amber);outline-offset:-2px}
.item.dropover::after{content:'Отпустите, чтобы прикрепить файл';position:absolute;inset:0;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--raise) 88%,transparent);color:var(--txt);font-size:13px;font-weight:600;pointer-events:none}
.item.uploading{pointer-events:none}
.item .upfill{position:absolute;left:6px;top:9px;bottom:9px;width:0;border-radius:999px;z-index:0;pointer-events:none;
  background:color-mix(in srgb,var(--txt) 3%,transparent);box-shadow:inset 2px 2px 5px var(--sh),inset -2px -2px 5px var(--hi);transition:width .3s ease}
.item.uploading>:not(.upfill){position:relative;z-index:1}
.clipn{display:inline-flex;align-items:center;gap:3px;margin-left:8px;color:var(--mut);font-size:11.5px;vertical-align:middle}
.clipn svg.i{width:13px;height:13px}
.cmanon{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mut);margin:0 0 6px}
.sg.sup .fld{flex:1;min-width:0}

.fmeta{font-size:10.5px;color:var(--mut);white-space:nowrap;letter-spacing:.02em;margin-left:8px;font-weight:500}
.meta .fmeta{margin-left:2px;align-self:center}


/* ── теги участников по долгому нажатию ── */
.tgp{position:fixed;z-index:960;width:min(360px,calc(100vw - 20px));padding:14px 14px 16px;border-radius:26px;
  background:color-mix(in srgb,var(--raise) 86%,transparent);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);
  box-shadow:-5px -5px 12px var(--hi),10px 14px 34px var(--sh),0 18px 50px rgba(0,0,0,.28),inset 0 0 0 1px var(--edge);
  transform-origin:50% 0;animation:tgIn .22s cubic-bezier(.34,1.4,.64,1)}
.tgp.out{animation:tgOut .18s ease forwards}
.tgp .tgh{display:flex;flex-direction:column;gap:2px;margin:0 4px 12px}
.tgp .tgh b{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tgp .tgh span{font-size:11.5px;color:var(--mut)}
.tgp .tgc{display:flex;flex-wrap:wrap;gap:8px}
.tgb{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:18px;font-size:13px;font-weight:550;color:var(--mut);background:var(--raise);
  box-shadow:3px 3px 8px var(--sh),-3px -3px 7px var(--hi),inset 0 0 0 1px var(--edge);
  transition:background .2s,color .2s,box-shadow .2s;animation:tgFly .5s cubic-bezier(.3,1.35,.5,1) both,tgFloat 3.2s ease-in-out infinite alternate;
  animation-delay:calc(var(--i) * 22ms),calc(.5s + var(--i) * -370ms)}
.tgb .dot{width:8px;height:8px;border-radius:50%;background:var(--c);opacity:.55;transition:opacity .2s,transform .2s}
.tgb.on{color:var(--txt);background:color-mix(in srgb,var(--c) 22%,var(--raise));box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 70%,transparent),0 4px 14px color-mix(in srgb,var(--c) 22%,transparent)}
.tgb.on .dot{opacity:1;transform:scale(1.2)}
.tgb.tap{animation:tgTap .28s cubic-bezier(.34,1.6,.64,1),tgFloat 3.2s ease-in-out infinite alternate}
@keyframes tgIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes tgOut{to{opacity:0;transform:scale(.95)}}
@keyframes tgFly{from{opacity:0;transform:translate(var(--fx,0),var(--fy,0)) scale(.3)}to{opacity:1;transform:none}}
@keyframes tgFloat{from{translate:0 -1.5px}to{translate:0 1.5px}}
@keyframes tgTap{0%{scale:1}40%{scale:.9}100%{scale:1}}
@media (prefers-reduced-motion:reduce){.tgb{animation:none}.tgp{animation:none}}
/* шесть разделов в нижней панели телефона */
@media (max-width:760px){.tb{padding-left:6px;padding-right:6px}.tb a{flex:1 1 0;width:auto;min-width:0;max-width:84px;font-size:9.5px}}

/* превью файлов */
.fpv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s}
.fpv.ok{opacity:1}
.fic .fpv.ok+svg{visibility:hidden}
.fth{flex:none;width:44px;height:44px;border-radius:12px;overflow:hidden;position:relative;box-shadow:inset 0 0 0 1px var(--edge);order:3}
.fth:not(:has(.fpv.ok)){display:none}
/* список «Комментарии» */
.cmr{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:16px;margin-top:8px;background:var(--raise);box-shadow:var(--out);color:var(--txt)}
.cmr:active{box-shadow:var(--in)}
.cmr .cmd{width:8px;height:8px;border-radius:50%;flex:none;background:transparent}
.cmr.new .cmd{background:var(--c-pink);box-shadow:0 0 8px var(--c-pink)}
.cmr .cmb{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cmr .cmb b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmr .cmb span{font-size:12.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmr .cmm{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;font-size:11px;color:var(--mut)}
.cmr .cmm i{font-style:normal;display:inline-flex;align-items:center;gap:3px}.cmr .cmm svg.i{width:13px;height:13px}
.cmbtn{position:relative}
.cmbtn .bdn{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--c-pink);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;line-height:1}
/* комментарии под датой строки мероприятия */
.item .tm .cmn{display:inline-flex;align-items:center;gap:4px;margin-top:0;padding:0;background:none;box-shadow:none;border:0;color:var(--mut);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer}
.item .tm .cmn svg.i{width:14px;height:14px;stroke-width:1.9}
.item .tm .cmn.new{color:var(--c-pink)}
/* колечки лимитов */
.rings{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.rg{border-radius:16px;padding:12px 10px;box-shadow:var(--in);display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}
.rg svg{width:56px;height:56px;transform:rotate(-90deg)}
.rg circle{fill:none;stroke-width:5}
.rg .bg{stroke:color-mix(in srgb,var(--txt) 10%,transparent)}
.rg .fg{stroke:var(--c);stroke-linecap:round;transition:stroke-dasharray .6s ease}
.rg b{position:absolute;top:30px;left:0;right:0;font-size:12px;font-weight:700}
.rg span{font-size:11.5px;font-weight:600;margin-top:6px;line-height:1.25}
.rg small{font-size:10.5px;color:var(--mut);margin-top:2px}
/* хот-лист видео: строка при перетаскивании делится на «Исходник» и «Результат» */
.item.dsp::after{display:none}
.item .dsplit{position:absolute;inset:0;border-radius:14px;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;pointer-events:none;z-index:3;
  background:color-mix(in srgb,var(--raise) 80%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.item .dsplit span{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:11px;font-size:13px;font-weight:650;color:var(--mut);
  box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--mut) 35%,transparent);transition:all .15s}
.item .dsplit span svg.i{width:16px;height:16px}
.item .dsplit span.on{color:var(--txt);box-shadow:inset 0 0 0 2px var(--c-amber),0 0 18px color-mix(in srgb,var(--c-amber) 25%,transparent);background:color-mix(in srgb,var(--c-amber) 12%,transparent)}
.item .dsplit span[data-s="src"].on{box-shadow:inset 0 0 0 2px var(--c-sky),0 0 18px color-mix(in srgb,var(--c-sky) 25%,transparent);background:color-mix(in srgb,var(--c-sky) 12%,transparent)}
.files .flbl{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--c,var(--mut));margin:0 2px 8px}
.files+.files{margin-top:16px}
.files .fi[draggable=true]{cursor:grab}
.files .fi.dragging{opacity:.4}
.files.mvover{border-radius:16px;box-shadow:inset 0 0 0 2px var(--c,var(--c-amber));padding:6px;margin:-6px}

/* превью готовых файлов в строке хот-листа — вместо кнопки скачивания */
.fstrip{display:flex;align-items:center;gap:6px;flex:none;order:3}
.fstrip .fth{display:grid;place-items:center;padding:0;border:0;cursor:pointer;background:linear-gradient(135deg,color-mix(in srgb,var(--c-amber) 30%,var(--raise)),color-mix(in srgb,var(--c-pink) 30%,var(--raise)));
  box-shadow:0 3px 10px var(--sh),inset 0 0 0 1px var(--edge);transition:transform .15s}
.fstrip .fth:hover{transform:translateY(-2px)}
.fstrip .fth .fx{font-size:9.5px;font-weight:700;letter-spacing:.06em;color:var(--txt);opacity:.75}
.fstrip .fth:has(.fpv.ok) .fx{display:none}
.fstrip .fth .fpv{object-fit:cover}
.fstrip .fmore{font-size:11.5px;font-weight:650;color:var(--mut);padding:0 2px}
.fstrip .fth:not(:has(.fpv.ok)){display:grid}
@media (max-width:760px){.fstrip .fth{width:40px;height:40px}.fstrip .fth:nth-child(n+3){display:none!important}}
/* комментарий отправляется / не отправился */
.cmi.pend{opacity:.6}
.cmi.pend time{font-style:italic}
.cmi.pend.fail{opacity:1;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--bad) 55%,transparent)}
.cmi.pend.fail time{color:var(--bad);font-style:normal}
/* плашка «приложение обновилось» */
.upd{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 12px);transform:translateX(-50%);z-index:950;display:flex;align-items:center;gap:10px;
  padding:8px 8px 8px 14px;border-radius:16px;background:var(--raise);box-shadow:var(--out),inset 0 0 0 1.5px color-mix(in srgb,var(--c-green) 45%,transparent);
  font-size:13.5px;white-space:nowrap;animation:updin .3s cubic-bezier(.2,.9,.3,1)}
.upd svg.i{width:16px;height:16px;color:var(--c-green);flex:none}
.upd .btn{flex:none}
@keyframes updin{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translateX(-50%)}}
@media (max-width:760px){.upd{top:calc(env(safe-area-inset-top) + 64px);max-width:calc(100vw - 32px)}}
/* что нового */
.chg+.chg{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.chv{font-size:12px;color:var(--mut);margin-bottom:6px}
.chk{margin:8px 0}
.chk b{font-size:13px;color:var(--c)}
.chk ul{margin:4px 0 0;padding-left:18px;font-size:14px;line-height:1.45}
.chk li+li{margin-top:3px}
/* пароль: подписанные поля, «показать», подсказки под полем */
.pwl{margin:16px 0 6px;font-size:15px;font-weight:600}
.pwl small{display:block;font-size:12.5px;font-weight:400;color:var(--mut);margin-top:2px}
.pwf{display:flex;align-items:center;gap:8px}
.pwf .fld{flex:1;min-width:0;font-size:18px;letter-spacing:.06em;padding:12px 14px}
.pwh{min-height:18px;margin-top:5px;font-size:13px;display:flex;align-items:center;gap:5px}
.pwh.ok{color:var(--c-green)}.pwh.no{color:var(--bad)}
.pwh svg.i{width:14px;height:14px}
/* карточка «Администрирование» */
.admcard{width:100%;justify-content:flex-start;gap:10px;margin:4px 0 10px;padding:14px 16px}
.admcard span{margin-left:auto;font-size:12.5px;color:var(--mut);font-weight:400}
.acp{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);min-width:0}
.acp .acs{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acp .acb .ic{width:30px;height:30px}.acp .acb svg.i{width:15px;height:15px}
.acadd{margin:8px 0 4px}.acadd .pick{margin-top:8px}
.acn{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.acd{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1.5px var(--mut)}
.acd.on{background:var(--c-green);box-shadow:none}
.acs{font-size:12px;color:var(--mut);margin-left:6px}
.acr{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.acr .seg button{padding:6px 10px;font-size:12.5px}
.acb{display:flex;gap:6px}
.acpl{padding:10px 0;border-bottom:1px solid var(--line)}
.acpl>b{display:block;font-size:15px}
.acpo{display:flex;justify-content:space-between;margin-top:8px;font-size:14px}
.acpo em{font-style:normal;font-weight:600;font-variant-numeric:tabular-nums}
/* настройки меню: вкладки, порядок, показать/скрыть */
.navr label{display:flex;align-items:center;gap:10px}
.navr label svg.i{width:18px;height:18px;color:var(--mut)}
.navr.off label{color:var(--mut)}
.navb{display:flex;align-items:center;gap:4px}
.navb .ic.sm{width:30px;height:30px}.navb .ic.sm svg.i{width:15px;height:15px}
.navb .ic.sm[disabled]{opacity:.3;pointer-events:none}
.navb svg.up{transform:rotate(180deg)}
.navb .sw{margin-left:6px}.navb .sw.lock{opacity:.45;pointer-events:none}
/* правка меню на панели: покачивание, минус, плюс, перетаскивание */
.tb a,.rail a.r{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.nedit .tb a,.nedit .rail a.r{position:relative;touch-action:none;animation:nwig .26s ease-in-out infinite alternate;cursor:grab}
.nedit .tb a:nth-child(2n),.nedit .rail a.r:nth-child(2n){animation-direction:alternate-reverse;animation-delay:-.13s}
.nedit .tb a.ndrag,.nedit .rail a.r.ndrag{animation:none;z-index:5;cursor:grabbing;background:var(--raise);box-shadow:0 10px 24px rgba(0,0,0,.35)}
@keyframes nwig{from{rotate:-2deg}to{rotate:2deg}}
@media (prefers-reduced-motion:reduce){.nedit .tb a,.nedit .rail a.r{animation:none}}
.nx{position:absolute;top:-4px;right:-2px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;z-index:2;
  background:color-mix(in srgb,var(--txt) 70%,var(--sheet));color:var(--sheet);box-shadow:0 2px 6px rgba(0,0,0,.3)}
.nx svg.i{width:12px;height:12px;stroke-width:3}
.nplus{flex:none;width:40px;height:40px;border-radius:50%;border:0;display:grid;place-items:center;align-self:center;cursor:pointer;
  background:var(--raise);color:var(--txt);box-shadow:var(--out)}
.nplus svg.i{width:18px;height:18px}
/* все реакции по «+»: сетка */
.rxp.all{display:grid;grid-template-columns:repeat(8,40px);gap:2px;max-width:calc(100vw - 20px)}
.rxp.all button{width:40px;height:40px;font-size:23px}
@media (max-width:380px){.rxp.all{grid-template-columns:repeat(7,38px)}.rxp.all button{width:38px;height:38px}}
/* пометка «beta» у вкладки, которая ещё обкатывается */
.beta{font-size:7.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--c-teal);margin-left:2px;vertical-align:super;line-height:0}
.tb a .tt{display:inline-flex;align-items:flex-start}
/* непрочитанное в чате */
.tb a,.rail a.r{position:relative}
.cbd{position:absolute;top:2px;left:50%;margin-left:6px;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--c-teal);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;line-height:1;box-sizing:border-box}
/* переключатель страниц внутри раздела (Дизайн: Хот-лист · Афиши · Проекты) */
.kindsw{padding:4px 30px 0}
.kindsw .seg a{padding:7px 18px;font-size:13px;border-radius:14px;color:var(--mut);display:inline-block}
.kindsw .seg a.on{color:var(--txt);font-weight:600;background:var(--raise);box-shadow:var(--out)}
@media (max-width:760px){.kindsw{padding:10px 16px 0}}
/* телефон: клавиатура открыта — нижней панели нет */
@media (max-width:760px){.kbd .tb{display:none}.kbd .fab{display:none}}

/* демо-версия (без входа): плашка сверху и заглушка закрытых разделов */
.demobar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 92px);z-index:700;display:flex;align-items:center;gap:12px;
  padding:8px 8px 8px 16px;border-radius:16px;background:var(--raise);box-shadow:var(--out);font-size:13px;color:var(--mut);white-space:nowrap}
@media(min-width:761px){.demobar{bottom:24px}}
.page{position:relative}
.demolock{position:absolute;inset:0;z-index:50;background:var(--sheet);display:flex;align-items:flex-start;justify-content:center;padding:18vh 20px 40px}
.demolock>div{max-width:440px;text-align:center}
.demolock b{display:block;font-size:22px;font-weight:650;margin-bottom:10px}
.demolock p{color:var(--mut);font-size:14px;line-height:1.5;margin:0 0 18px}
.demolock .acts{justify-content:center}
