/* ===== Кнопки с текстом (Аня 10.10.2026): четыре вида, размеры задаются только здесь =====
   обычная и главная (.btn, .btn.main): высота 32; фильтр-переключатель: круглый, высота 28; маленькая в строке списка: высота 26.
   Цвета у кнопок свои (по теме пространства), здесь только размеры. Новой кнопке брать эти переменные, а не числа. */
:root{--btn-fs:13.5px;--btn-lh:18px;--btn-px:14px;--btn-r:8px;
  --chip-fs:13px;--chip-lh:18px;--chip-px:12px;
  --sbtn-fs:12.5px;--sbtn-lh:16px;--sbtn-px:10px}
/* ===== Значки-действия (Аня 10.10.2026): квадрат 28, значок 16, цвет --ico; звезда 18 в том же квадрате; в строке всегда в конце ===== */
:root{--ico-box:28px;--ico:16px;--ico-col:var(--dim,#5c6655)}

/* напоминания на почту: строка «за N дн. в ЧЧ:ММ ×» (Аня 20.09) */
.mrem .mrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:5px 0}
.mrem .mn{width:64px}.mrem .mt{width:auto}.mrem .mrow select{width:auto}
.mrem .mdel{border:0;background:none;color:#b3261e;font-size:20px;line-height:1;cursor:pointer;padding:0 6px}
body.simple .tpanel#tpanel>.row.mremrow{display:block!important}
.tpanel>.row.mremrow.nodue,body.simple .tpanel#tpanel>.row.mremrow.nodue{display:none!important}
.mrem .mrem-add{margin-top:2px}.mrem .mrem-note{font-size:13px;color:#b3261e;margin-top:4px}
/* личные страницы хозяйки в виде совета (Аня 17.09): в правой колонке только сумма и шкала, название шире */
body.mine.tagged li.t>.tagcol,body.mine .sub .sright{grid-template-columns:68px 76px 104px!important;grid-auto-flow:row!important;width:max-content!important;max-width:none!important;justify-content:end!important;justify-items:center;column-gap:12px!important;flex:0 0 auto;margin-left:auto}
li.t{cursor:grab;user-select:none;-webkit-user-select:none;position:relative}
li.t.picked{background:var(--warm-bg);outline:2px solid var(--warm);cursor:grabbing}
li.t.dragging{opacity:.4}
.cell.over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}
.cell ul{min-height:46px}
.pen{flex:none;margin-left:auto;align-self:center;cursor:pointer;
  border:1px solid var(--line2);background:var(--bg);color:var(--accent);
  font:inherit;font-size:14px;line-height:1;padding:3px 7px;border-radius:7px}
.pen:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.status{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);
  background:var(--card);border:1px solid var(--line2);border-radius:999px;
  padding:7px 16px;font-size:13px;box-shadow:0 3px 14px rgba(0,0,0,.14);
  opacity:0;transition:opacity .2s;pointer-events:none;z-index:9}
.status.show{opacity:1}
.status.err{color:var(--hot);border-color:var(--hot);font-size:15px;font-weight:600;pointer-events:auto;cursor:pointer}
.status{z-index:10050}   /* 27.09: сообщение поверх открытых окон (было 9, под окном правки) */
.hint{color:var(--dim);font-size:13px;margin:0 0 14px}
/* пояснение под заголовком: везде один вид - линия слева, приглушённый текст (Аня 26.09) */
.xpl{margin:3px 0 14px;border-left:3px solid var(--warm,#50754a);padding:1px 0 1px 12px;font-size:13.5px;line-height:1.45;color:var(--dim,#5c6655);max-width:62em}
.xplh{margin:22px 0 12px;border-left:3px solid var(--warm,#50754a);padding:1px 0 1px 12px;max-width:62em}
.xplh:first-child{margin-top:4px}
.xplh>h1,.xplh>h2,.xplh>h3,.xplh>.dch{margin:0;line-height:1.2}
.xplh>p{margin:3px 0 0;font-size:13.5px;line-height:1.45;color:var(--dim,#5c6655);font-weight:400}
/* совет видит упрощённое окно: без денег, категорий и личных галочек */
body.cs .own{display:none}
/* у совета золотистая палитра вместо зелёной */
/* совет: пастельная тёплая палитра, всё приглушённое и в одной гамме */
body.cs{--sub-bg:#fbf8f1;--accent:#c9a961;--gain:#7d9a74;--gold-bg:#f9f1dc;--gold-line:#e6d7a7;--gold-ink:#6b5a2a;
  --bg:#fdfcf9;--card:#fff;--line:#f0ebe1;--line2:#e3dccd;--dim:#71695d;--faint:#726857;
  --hot:#b5654a;--hot-bg:#fbe9e1;--cool:#8a7a5a;--cool-bg:#f6efe2;--warm:#9a7b3a;--warm-bg:#f6efdf}
body.cs .tagbtn.t-batiment .ic{color:#7a6f5c}body.cs .tagbtn.t-sante .ic{color:#d9372a}body.cs .tagbtn.t-proprete .ic{color:#6f9a84}body.cs .tagbtn.t-beaute .ic{color:#c48fa3}body.cs .tagbtn.t-conseil .ic{color:#b5975a}body.cs .tagbtn.t-ressources .ic{color:#5b7fa6}body.cs .tagbtn.t-securite .ic{color:#e8590c}body.cs .tagbtn.t-dev .ic{color:#3f7f8c}body.cs .tagbtn.t-paper .ic{color:#9a7b4f}body.cs .tagbtn.t-users .ic{color:#f2c200}body.cs .tagbtn.t-houses .ic{color:#4f7a5a}body.cs .tagbtn.t-contractors .ic{color:#e6b000}
body.cs .pbar i{width:26px;height:15px}
body.cs .av{width:26px;height:26px;font-size:12px}
body.cs .chip.who{background:#ede8de;color:#7a6f5c}
body.cs .tagbtn.on,body.cs .newbtn.big{background:var(--gold-bg);border-color:var(--gold-line);color:var(--gold-ink)}
body.cs .tagbtn.on .tn{color:var(--gold-ink)}
body.cs .pbar i{background:#f3eee2;border:1px solid #e1d8c4;box-sizing:border-box}
body.cs .pbar i.on{background:#d5b96a;border-color:#c3a555;color:#fff}
body.cs .btn.main{background:var(--gold-bg);border-color:var(--gold-line);color:var(--gold-ink)}
body.cs .vb.up.on{background:#e7efe3;border-color:#8fae8a;color:#4f6f4b}
body.cs .vb.down.on{background:#f6e3df;border-color:#c98b7a;color:#8a4f42}body.cs .vb.mid.on{background:#f7efdd;border-color:#c9a961;color:#6b5a2a}
body.cs .score.sp{color:#5f7f5b} body.cs .score.sn{color:#a35a4e}
body.cs .chip.due{color:#a5654d;background:#f6e6df}
body.cs .cell{border-color:var(--line)}
body.cs .u-high>header{background:var(--hot-bg)} body.cs .u-high .cellname{color:var(--hot)}
body.cs .u-low>header{background:var(--cool-bg)} body.cs .u-low .cellname{color:var(--cool)}
body.cs li.t .flow{display:none}
/* у совета звёзды и часы на карточках не рисуем: клетка и так говорит, что важно и срочно; огонёк только если горит */
body.cs li.t .rank .ri,body.cs li.t .rank .ru,body.cs li.t .rank .rh:not(.on){display:none}
.who{margin-left:auto;color:var(--dim);font-size:13px}
.chip.who{background:var(--cool-bg);color:var(--cool)}
.av{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;
  font-size:12px;width:24px;height:24px;vertical-align:middle;flex:none;letter-spacing:0}
.av-ico{background:#fff;font-size:12px;border:1px solid var(--line2);overflow:hidden;box-sizing:border-box}
.av-img{object-fit:cover;background:#fff;border:1px solid var(--line2)}
.av-l{width:72px;height:72px;font-size:24px}
.who .av{margin-right:4px}
.tagbtn .av{margin-right:2px}
.whobtn{padding:3px 8px 3px 4px}
.filters{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:nowrap;margin-bottom:6px}
.topline{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 12px}
.remind-row{display:flex;gap:8px;flex-wrap:wrap;flex:1 1 auto}
.topline .acts2{flex-direction:row;gap:8px}
.newbtn.big.remind{text-decoration:none;font-weight:500}
.topline .acts2 .newbtn.big{width:auto}
@media (max-width:900px){.filters{flex-wrap:wrap}.acts2{flex-direction:row;width:100%;justify-content:flex-end}}
.flegend{font-size:13px;color:var(--dim);margin:2px 0 8px}
.frows{flex:1 1 auto;min-width:0}
.acts2{flex:0 0 auto}
.acts2{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
.newbtn.big{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;padding:9px 16px;font-size:14px;box-shadow:0 1px 2px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.35)}
.loglink2{text-decoration:none}
.acts2 .newbtn.big{width:100%;box-sizing:border-box;text-align:center}
.headrow{display:flex;gap:16px;align-items:flex-end;margin-bottom:6px}   /* фильтры и кнопки справа выровнены по нижнему краю (Аня 17.09) */
.headrow>.filters{flex:1 1 auto;min-width:0;margin-bottom:0}
.headrow .headacts{flex-direction:column;align-items:stretch;width:auto;min-width:160px}
.headacts .who{margin:0 0 2px;align-self:flex-end;white-space:nowrap}
/* компактнее (Аня 17.09): имя и Info в одну строку над остальными кнопками, столбец не выше фильтров */
.headrow .headacts{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;row-gap:8px;align-items:center}
.headrow .headacts>*{grid-column:1/-1}
.headrow .headacts>.who{grid-column:1;margin:0;align-self:center}
.headrow .headacts>#btn_info{grid-column:2}
/* Аня 17.09: столбец справа не выше фильтров: кнопки плотнее, напоминание одной строкой (полный текст в подсказке) */
@media (min-width:701px){.headrow .headacts{row-gap:5px;max-width:230px}
.headrow .headacts .newbtn.big{padding:5px 10px;font-size:13.5px;line-height:1.3}
.headrow .headacts .newbtn.big.remind{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:left}
.headrow .headacts .srchbox input{padding:5px 10px}
.headrow .headacts>.who{font-size:13px;grid-column:1/-1;justify-self:end}
/* Аня 18.09: кнопки справа в два столбика, чтобы их столбец был не выше пяти серых строк фильтров слева */
.headrow .headacts{grid-template-columns:repeat(2,minmax(0,186px));justify-content:end;column-gap:6px;max-width:378px}
.headrow .headacts>*{grid-column:auto}
.headrow .headacts>#btn_info{grid-column:auto}
.headrow .headacts>.who{grid-column:1/-1}
.headrow .headacts .newbtn.big{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.headrow .headacts .newbtn.big.remind{text-align:center}}
.topline:has(>.remind-row:empty),.top[hidden]{display:none}
@media (max-width:700px){.headrow{flex-direction:column-reverse;gap:8px}.headrow .headacts{flex-direction:row;flex-wrap:wrap;width:100%;align-items:center;justify-content:flex-end}.headacts .who{margin-right:auto;align-self:center}.headrow .headacts .newbtn.big{width:auto}}
/* меню слева вместо столбика кнопок в правом углу (Аня 18.09): узкое, каждый пункт своей строкой */
.sidenav{display:flex;flex-direction:column;gap:8px}
.sidenav a{text-decoration:none}
.sidenav .srchbox{width:100%}
body.tagged .sidenav .me{color:#555}
/* пункт меню слева для текущей страницы: жирный текст + видимая рамка, без тёмной заливки (Аня 18.09).
   Тёмный вариант (сплошной тёмно-зелёный фон #2e5c27 поверх обычного зелёного фона кнопки) оказался
   нечитаемым - белый текст на очень тёмном фоне сливался. По просьбе после скриншота вернули обычный фон
   кнопки (var(--accent)) и белый текст, а «вы здесь» показываем жирным начертанием и рамкой того же
   тёмно-зелёного оттенка вместо заливки (Аня 18.09, повторная правка после жалобы на нечитаемость). */
.sidenav .cur{font-weight:800;border:2px solid #234a1e;box-shadow:inset 0 2px 4px rgba(0,0,0,.28),inset 0 0 0 1px rgba(35,74,30,.35)}
@media (min-width:701px){
body.hasnav>.sidenav::-webkit-scrollbar{display:none}body.hasnav>.sidenav{scrollbar-width:none;position:fixed;left:0;top:0;width:200px;height:100vh;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:16px 12px;border-right:1px solid var(--line2);background:var(--card);z-index:5}
body.hasnav>.wrap{margin-left:224px}
body.hasnav>.sidenav .newbtn.big{width:100%;box-sizing:border-box;text-align:left;white-space:normal}
body.hasnav>.sidenav .who{margin:0 0 4px;align-self:stretch}
}
@media (max-width:700px){
body.hasnav>.sidenav{position:static;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;border-bottom:1px solid var(--line2);padding:8px 0;margin-bottom:8px}
body.hasnav>.sidenav .newbtn.big{width:auto}
body.hasnav>.sidenav .who{margin-right:auto;align-self:center}
}
/* круглая зелёная «+»: «Nouvelle tâche»/«Nouvelle sous-tâche», подсказка по наведению через title (Аня 18.09) */
.fabrow{display:flex;justify-content:flex-end;margin:0 0 10px}
.headrow>.uiaddw{flex:none;align-self:flex-end;margin:0}   /* кнопка в той же строке, что фильтры, а не отдельной (Аня 18.09); форма ui_form стоит под строкой (27.09) */
.headrow.synth-headrow{align-items:center;flex-wrap:wrap}   /* открытая форма новой сводки переносится на свою строку, а не сжимает фильтры в узкий столбец */   /* на /synth полоса фильтров однострочная и ниже «+»: центр «+» должен совпадать с центром строки фильтров, а не с нижним краем (Аня 18.09, пятая правка) */
.headrow.synth-headrow>.uiaddw{align-self:center}
@media (max-width:700px){.headrow.synth-headrow>.uiaddw{align-self:flex-end}}   /* на телефоне колонка: «+» справа, как на главной, а не по центру */
a.chip.due{text-decoration:none}
.srchbox input{width:100%;box-sizing:border-box;font:inherit;font-size:14px;padding:7px 10px;border:1px solid var(--line2);border-radius:8px;background:#fff}
.newbtn.ics{text-decoration:none;font-size:13px;padding:3px 9px;margin-left:6px}
body.tagged .top .newbtn,body.tagged .top .loglink{display:none}
.pbar{display:inline-flex;align-items:center;gap:3px;border:none;background:none;padding:0;cursor:pointer;vertical-align:middle}
.pbar i{display:flex;align-items:center;justify-content:center;width:30px;height:17px;background:var(--line);border-radius:2px;font-style:normal;font-size:12px;font-weight:700;color:var(--dim);letter-spacing:-.02em}
.pbar i.on{color:#fff}
body.tagged .pbar b{display:none}
.pbar i.on{background:var(--accent)}
/* деления слеплены в одну полосу: это шкала, а не пять кнопок */
body .pbar{gap:0}body .pbar i{border-radius:0}body .pbar i+i{margin-left:-1px}
body .pbar b{margin-left:5px}
/* светофорчик из одной лампы: пора ли браться за дело */
.rlight{display:inline-flex;align-items:center;justify-content:center;width:14px;height:21px;border-radius:4px;background:#4a4a4a;border:1px solid #333;vertical-align:middle;flex:none}
.rlight i{display:block;width:9px;height:9px;border-radius:50%;font-style:normal}
.rlight.go i{background:#49c157;box-shadow:0 0 5px rgba(73,193,87,.9)}
.rlight.wait i{background:#e6b52f;box-shadow:0 0 5px rgba(230,181,47,.9)}
body .tchips .rlight{height:22px}
/* светофор лёжа: корпус посветлее, лампы в ряд с козырьками; погасшие видны, но не светятся */
.tlight{display:inline-flex;flex-direction:row;align-items:center;gap:4px;padding:5px 5px 3px;background:#c9cdd0;border:1px solid #aeb3b7;border-radius:6px;vertical-align:middle;flex:none;box-sizing:border-box}
body .tlight .vb.tl,body .tchips .tlight .vb.tl,body .thead .tchips .tlight .vb.tl{position:relative;width:13px;min-width:13px;height:13px;padding:0;margin:0;border:0;border-radius:50%;opacity:1;filter:none;cursor:pointer;overflow:visible;box-shadow:inset 0 -2px 3px rgba(0,0,0,.25)}
body .tlight .vb.tl::before{content:"";position:absolute;left:-2px;right:-2px;top:-4px;height:6px;border-radius:7px 7px 0 0;background:#8f959a;pointer-events:none}
body .tlight .vb.tl.up{background:#3f8a4e}body .tlight .vb.tl.mid{background:#c0941f}body .tlight .vb.tl.down{background:#b23b2f}
body .tlight .vb.tl.up.mine{background:#34c24a;box-shadow:0 0 4px 1px rgba(52,194,74,.7)}
body .tlight .vb.tl.mid.mine{background:#f5b800;box-shadow:0 0 4px 1px rgba(245,184,0,.7)}
body .tlight .vb.tl.down.mine{background:#ea3a2e;box-shadow:0 0 4px 1px rgba(234,58,46,.7)}
body .tlight .vb.tl.up.go{background:#5cff72;box-shadow:0 0 8px 3px rgba(92,255,114,.85)}
body .tlight .vb.tl:hover{filter:brightness(1.1)}
/* дело и подзадачи: подзадачи - карточки поменьше внутри карточки дела, линии как у дерева папок */
body .subl{background:none;border-left:0;border-radius:0;padding:0 0 2px 0;margin:6px 0 0 0}
body .subl li.sub{background:var(--card);border:1px solid var(--line2);border-radius:8px;padding:4px 33px 4px 10px;margin:5px 0 0 26px;box-sizing:border-box}
body .subl li.sub.d1{margin-left:52px}body .subl li.sub.d2{margin-left:78px}body .subl li.sub.d3{margin-left:104px}body .subl li.sub.d4{margin-left:130px}body .subl li.sub.d5,body .subl li.sub.d6{margin-left:156px}
body .subl li.sub::before{content:"";position:absolute;left:-16px;top:-8px;height:calc(50% + 8px);width:12px;border-left:1.5px solid #c8bca2;border-bottom:1.5px solid #c8bca2;border-bottom-left-radius:5px;pointer-events:none}
body li.t>.body .ti{font-weight:600}
/* подсписок заходит под столбик карандаша карточки, чтобы колонки подзадач стояли там же, где у дела */
body.tagged li.t>ul.subl{flex-basis:calc(100% + 34px);max-width:none;margin-right:-34px}
body .sub .mpen{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:1px solid var(--line2);background:var(--bg);color:var(--accent);font:inherit;font-size:14px;line-height:1;padding:3px 7px;border-radius:7px;cursor:pointer}
body .sub .mpen:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
body .tchips .vote,.vote{height:auto;gap:5px}
.first{display:block;width:fit-content;font-size:12px;color:#7a5200;background:#fdf1d8;border-radius:6px;padding:2px 8px;margin-top:3px}
.first a{color:inherit;font-weight:600}
.deplist{max-height:160px;overflow:auto;display:flex;flex-direction:column;gap:3px;border:1px solid var(--line2);border-radius:6px;padding:6px;margin-top:4px}
.deplist label{font-size:13px;display:flex;gap:6px;align-items:flex-start}
li.sub[draggable]{cursor:grab}

.pbar b{font-size:12px;color:var(--dim);margin-left:4px;font-weight:600;min-width:26px;text-align:left}
li.t[data-status="done"] .ti{color:var(--dim);text-decoration:line-through}
.stbtn{cursor:pointer;font:inherit;font-size:12px;font-weight:700;line-height:1.5}
.chip.st-todo{background:transparent;color:var(--dim);border:1px solid var(--line2)}
.chip.st-doing{background:transparent;color:var(--accent);border:1px solid var(--accent)}
.chip.st-done{background:var(--gain,#2e7d32);color:#fff;border:1px solid transparent}
.chip.tag{background:none;border:none;padding:0;line-height:1;display:inline-flex}
.ico{width:16px;height:16px;vertical-align:-4px;flex:none}
.chip.tag .ico{width:20px;height:20px}
.tagbtn .ico{width:17px;height:17px;vertical-align:-3px}
.pen .ico,.mpen .ico{width:16px;height:16px;vertical-align:-3px}
.newbtn .ico{width:16px;height:16px;vertical-align:-3px}
.chip.due .ico{width:13px;height:13px;vertical-align:-2px}
.t-batiment{color:#7a6f5c}.t-sante{color:#d9372a}.t-proprete{color:#6f9a84}.t-beaute{color:#c48fa3}.t-conseil{color:#b5975a}.t-ressources{color:#5b7fa6}.t-securite{color:#e8590c}.t-dev{color:#3f7f8c}.t-paper{color:#9a7b4f}.t-users{color:#f2c200}.t-houses{color:#4f7a5a}.t-contractors{color:#e6b000}
.tagbtn .ic{display:inline-flex}
.tagbtn{font-size:14px}
/* значки категорий стоят в одной колонке у правого края карточки, перед карандашом */
body.tagged li.t{padding-right:34px;align-items:center;flex-wrap:wrap}
body.tagged li.t>.body{flex:1 1 0;min-width:0}
body.tagged li.t>.pen{top:7px;transform:none}
body.tagged li.t>.subl{flex-basis:100%;margin-left:0;margin-right:0;padding-right:0}
/* три фиксированных ячейки: шкала, ответственный, значки; каждая начинается на одном и том же месте */
body.tagged .tagcol{position:static;flex:none;margin-left:auto;align-self:center;display:grid;grid-template-columns:142px 76px 72px 90px;
  align-items:center;justify-items:start;column-gap:12px}   /* было 4px: значок места почти впритык к иконке категории, жалоба со скриншотом 18.09 (снова) */
body.tagged .tagcol .tg{display:flex;gap:3px;flex-wrap:wrap;max-width:72px}
body.tagged .tagcol .tg .chip.tag .ico{width:18px;height:18px}
.sub .sright .tg{flex-wrap:wrap;max-width:72px}
.whoc{display:flex;align-items:center;min-width:22px}.whoc.named{gap:6px;flex-wrap:wrap}.whoc.named .av{margin-left:0}.avname{font-weight:600;font-size:13px;white-space:nowrap}
button.slot{border:0;background:none;padding:0;cursor:pointer;font:inherit;display:flex;align-items:center;min-height:22px}
button.slot:hover{outline:1px dashed var(--line2);border-radius:6px}
.ico.faint{color:#9fab98;width:16px;height:16px}
#pop{position:absolute;z-index:30;background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:8px;box-shadow:0 8px 28px rgba(0,0,0,.16);display:flex;flex-direction:column;gap:2px;min-width:200px}
.popi{display:flex;align-items:center;gap:8px;border:1px solid transparent;background:none;font:inherit;font-size:13px;padding:4px 8px;border-radius:8px;cursor:pointer;text-align:left;color:var(--ink)}
.popi:hover{background:var(--bg)}
.popi.on{background:var(--gold-bg,#eef4f4);border-color:var(--gold-line,var(--line2))}
/* «À voir avec» d'une note de synthèse (Аня 18.09) : c'est le contrôle de l'en-tête d'une tâche, mot pour mot
   (.tchips > .hgrp > .hl + .whoc.slot.named), seuls les sélecteurs `.thead .tchips` ci-dessous acceptent aussi
   `.tchips.synextline`. Le popup est le #pop/.popi commun. Les vraies cases (.extstore) restent cachées. */
.tchips.synextline{margin:0 0 10px}
.extpick .extstore,.extpick .extplus{display:none!important}
.extlive.busy{opacity:.6;pointer-events:none}
.slot.ro{cursor:default}
/* хозяйка на /synth: тот же размер кружков, что в шапке дела совета (там на странице стоит body.cs) - и у контроля, и в его попапе */
body.synown .tchips.synextline .av{width:26px;height:26px;font-size:12px}
body.synown #pop .av{width:30px;height:30px;font-size:12.5px}
.vote{display:inline-flex;align-items:center;gap:2px}
.vq{font-style:normal;font-size:12px;color:var(--faint);margin-right:3px;white-space:nowrap}
.vb{border:1px solid var(--line2);background:var(--card);color:var(--dim);font:inherit;font-size:12px;line-height:1;padding:3px 7px;border-radius:999px;cursor:pointer;white-space:nowrap}
.vb:hover{color:var(--ink);border-color:var(--ink)}
.vb.up.on{background:#e6f4ea;border-color:#2e7d32;color:#1b5e20;font-weight:700}
.vb.down.on{background:#fdecea;border-color:#c62828;color:#b71c1c;font-weight:700}.vb.mid.on{background:#fdf4e3;border-color:#c9922e;color:#8a5d00;font-weight:700}
.vb.tl{width:17px;height:17px;min-width:17px;padding:0;border-radius:50%;font-size:0}
.vb.tl.up{background:#d6e9d9;border-color:#a8c6ab}.vb.tl.mid{background:#f4e6c8;border-color:#d6bd85}.vb.tl.down{background:#f2d2ce;border-color:#d3a29a}
.vb.tl:hover{filter:brightness(.94)}
body .vb.tl.up.on{background:#2e7d32;border-color:#1b5e20}body .vb.tl.mid.on{background:#d99a1f;border-color:#8a5d00}body .vb.tl.down.on{background:#c62828;border-color:#b71c1c}
body.cs .vb.tl.up.on{background:#5f8f58;border-color:#4f6f4b}body.cs .vb.tl.mid.on{background:#c9a961;border-color:#6b5a2a}body.cs .vb.tl.down.on{background:#b4705f;border-color:#8a4f42}
body .tchips .vb.tl,body .thead .tchips .vb.tl{width:20px;min-width:20px;height:20px;padding:0;border-radius:50%}

.score{min-width:20px;text-align:center;font-size:12px;font-weight:700;border:0;background:none;font-family:inherit;cursor:pointer;padding:2px 3px;border-radius:6px}
.score:hover{background:var(--bg)}
.popv{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:13px}
.popv i{font-style:normal;margin-left:auto;font-size:12px;padding:1px 7px;border-radius:999px}
.popv.vp i{background:#e7efe3;color:#4f6f4b} .popv.vn i{background:#f6e3df;color:#8a4f42} .popv.vm i{background:#f7efdd;color:#6b5a2a}
.score.sp{color:var(--gain,#2e7d32)} .score.sn{color:var(--hot)} .score.sz{color:var(--dim)}
.chip.vch{background:var(--bg);border:1px solid var(--line2);color:var(--ink)}
.subl{list-style:none;margin:6px 0 2px 0;padding:4px 0 4px 10px;border-left:3px solid var(--gold-line,var(--line2));background:var(--sub-bg,#f6f1e6);border-radius:0 8px 8px 0;flex-basis:100%;box-sizing:border-box}
.sub{display:flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 0;position:relative;flex-wrap:nowrap}
.sub .sti{flex:1 1 0;min-width:0}
.sub .sright{flex:none;margin-left:auto}
.sub.d1{margin-left:16px}.sub.d2{margin-left:32px}.sub.d3{margin-left:48px}.sub.d4{margin-left:64px}.sub.d5{margin-left:80px}.sub.d6{margin-left:96px}
.sub{padding-right:0}
.sub .sright{display:grid;grid-template-columns:142px 76px 72px 90px;align-items:center;justify-items:start;column-gap:12px}   /* было 4px: та же правка, что и для .tagcol выше, чтобы подзадачи не отличались (Аня 18.09) */
.sub .mpen{position:absolute;right:-28px;top:50%;transform:translateY(-50%)}
.sub[data-status="done"] .sti{color:var(--dim);text-decoration:line-through}
.ddone{display:inline-block;margin-left:6px;font-size:11px;color:var(--dim);font-weight:400;text-decoration:none;white-space:nowrap}
.addsub{border:1px solid var(--line2);background:var(--bg);color:var(--dim);font:inherit;font-size:14px;line-height:1;padding:2px 6px;border-radius:7px;cursor:pointer}
.addsub:hover{color:var(--accent);border-color:var(--accent)}
body.tagged .f-status{display:none}
.f-progress input[type=range]{padding:0;height:28px}
.whoc .av{margin-left:-5px;border:2px solid var(--card)}.tchips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}body .tchips .hdrw,body .tchips .tagcol,body .tchips .rank,body.tagged .tchips .tagcol{display:contents}.tchips .chip,.tchips .newbtn,.tchips .slot,.tchips .vb,.tchips .rk,.tchips .par,.tchips .score{height:26px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border-radius:999px;border:1px solid var(--line2);background:var(--card);font-size:12.5px;line-height:1;white-space:nowrap;margin:0}.tchips .slot:hover,.tchips .newbtn:hover,.tchips .rk:hover{outline:none;border-color:var(--dim)}.tchips .av{width:24px;height:24px;font-size:12px;margin:0}.tchips .avname{font-weight:600;font-size:12.5px}.tchips .ico{width:14px;height:14px}.tchips .vote{display:inline-flex;align-items:center;gap:6px}.tchips .pbar{height:26px;display:inline-flex;align-items:center;gap:3px}.tchips .slot .chip{border:0;background:none;padding:0;height:auto;border-radius:0}.tchips .score{min-width:26px;padding:0 8px}.tchips .par{font-weight:600;color:var(--dim)}body .tchips>*,body .tchips .chip,body .tchips .newbtn,body .tchips .slot,body .tchips .vb,body .tchips .rk,body .tchips .par,body .tchips .score{height:26px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;line-height:1;margin:0;vertical-align:middle}body .tchips .whoc,body .tchips .tg{padding:0 10px;min-width:0;gap:4px}body .tchips .slot .chip{border:0;background:none;padding:0;height:auto;min-height:0;border-radius:0}body .tchips .chip.tag .ico{width:17px;height:17px}body .tchips .av{width:24px;height:24px;font-size:12px;margin:0;border:0}body .tchips .vote{height:26px;display:inline-flex;align-items:center;gap:5px}body :is(.thead .tchips,.tchips.synextline) .slot{height:26px;min-height:26px;align-self:center;padding:0 10px;max-width:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line2);border-radius:999px;background:var(--card);flex:none}body .thead .tchips .tg{max-width:none;flex-wrap:nowrap;gap:4px}body :is(.thead .tchips,.tchips.synextline) .whoc{gap:4px;min-width:0}body :is(.thead .tchips,.tchips.synextline) .av{width:24px;height:24px;font-size:12px;margin:0;border:0;flex:none}body .thead .tchips .chip.tag .ico{width:17px;height:17px}
.whoc{padding-left:5px;box-sizing:border-box}
/* много ответственных: кружки ложатся в два ряда внутри своей ячейки */
body.tagged .whoc,.sub .sright .whoc{flex-wrap:wrap;max-width:76px;row-gap:2px}
#whorow label{display:inline-flex;align-items:center;gap:5px}
.av-empty{background:transparent}
body.tagged .pen{position:absolute;right:6px;top:5px}
body:not(.tagged) .tagcol{display:none}
.tagbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}
/* плашка «фильтр включён»: спрятана по умолчанию, JS показывает её классом .show (Аня 18.09).
   Первая строка внутри .frows, прямо над рядами фильтров - часть той же карточки, а не отдельный
   жёлтый алерт сбоку (Аня 18.09, правка по просьбе «покрасивее и вместе с фильтрами») */
.fbanner{display:none;align-items:center;gap:10px;flex-wrap:wrap;margin:0;padding:6px 10px;
  background:var(--gold-bg,#eef4f4);border:1px solid var(--gold-line,#cfe0e0);border-radius:8px;
  font-size:13px;color:var(--gold-ink,#3c5f33)}
.fbanner.show{display:flex}
.fbanner .fbanner-reset{border:1px solid var(--gold-line,#cfe0e0);background:var(--card,#fff);
  color:var(--gold-ink,#3c5f33);border-radius:999px;padding:4px 12px;font:inherit;font-size:13px;
  font-weight:600;cursor:pointer}
.fbanner .fbanner-reset:hover{filter:brightness(1.06)}
li.empty .fbanner-reset{margin-left:6px}
/* /synth: puce «à voir avec» activement choisie, sur fond rouge fin pour ne pas la confondre avec le reste
   de la barre (Аня 18.09) - scopé à .synbar pour ne pas toucher les autres pages */
.synbar .tagbtn.extbtn.on:not(.allext){outline:2px solid var(--hot);outline-offset:-1px}
.whobar{margin-bottom:14px}
.layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;align-items:start}
.side{position:sticky;top:12px}
.fcol{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.fcol h3{margin:0 0 2px;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--dim)}
.fcol .tagbtn{text-align:left;display:flex;justify-content:space-between;align-items:center;width:100%}
@media (max-width:900px){.layout{grid-template-columns:1fr}.side{position:static}.fcol{flex-direction:row;flex-wrap:wrap}.fcol h3{flex-basis:100%}.fcol .tagbtn{width:auto}}
.tagbtn{border:1px solid var(--line2);background:var(--card);color:var(--ink);border-radius:999px;
  padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}
.tagbtn .tn{color:var(--dim);font-size:13px;margin-left:2px}
.tagbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.tagbtn.on .tn{color:#fff}
li.t.tf-hide{display:none}
body:not(.st-done) li.t[data-status=done]:not(.viasub):not(.hdrw):not(.indone),body:not(.st-done) li.sub[data-status=done]:not(.dgrp){display:none}
/* при фильтре сетка остаётся 2x2, пустые клетки видны как «vide» */
#tagrow .tl{color:var(--dim);font-size:13px;align-self:center}
.loglink{color:var(--dim)}
.histbox{margin-top:10px;font-size:13px} .histbox>summary{cursor:pointer;color:var(--dim)}
ul.hist{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}
ul.hist li{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
ul.hist .lt{color:var(--faint);font-variant-numeric:tabular-nums}
ul.hist .lc{color:var(--dim)}
.who a{color:var(--dim)}
.who .me{color:var(--dim);display:inline-flex;align-items:center;gap:5px}
.who .me:hover{color:var(--accent)}
/* профиль и «о сайте» - обычные страницы (Аня 18.09, пятая партия): здесь были .memenu/#infoback -
   всплывающие окошки поверх узкого меню слева, из-за чего уезжали влево; блоки .pkbox/.pkadd/... ниже
   те же, что раньше жили под .memenu, теперь под .propage - содержимым страницы /profil */
.propage{max-width:560px}
/* раскладка (Аня 18.09, десятая партия: «расположи всё элегантно»): узкий экран - одна колонка в порядке
   фото / пароль и ключ / архив (/ опрос), выход последней отдельной строкой; на широком (>=1080px) - две колонки:
   слева фото и архив, справа пароль и ключ, выход внизу на всю ширину. Рамки везде одинаковые (.grp), зазор 16px */
.propage .pgrid{display:flex;flex-direction:column;gap:16px}
.propage .pcol{display:contents}
.propage .g-photo{order:1}.propage .g-pk{order:2}.propage .g-arch{order:3}.propage .pollgrp{order:4}
@media (min-width:1080px){
.propage{max-width:1000px}
.propage .pgrid{display:grid;grid-template-columns:1fr 1fr}
.propage .pgrid{align-items:stretch;grid-template-rows:auto auto}
.propage .g-photo{grid-column:1;grid-row:1;order:0}
.propage .g-arch{grid-column:1;grid-row:2;order:0}
.propage .g-pk{grid-column:2;grid-row:1/span 2;order:0}
.propage .pgrid.noarch .g-pk{grid-row:1}
/* без блока архива фото-рамка не растягивается до низа правой, а остаётся компактной (Аня 19.09) */
.propage .pgrid.noarch .g-photo{align-self:start}
.propage .pgrid.noarch .fphoto{padding:2px 0}
.propage .pollgrp{grid-column:1/-1;grid-row:3;order:0}
/* левые рамки растягиваются до низа правой (Аня 18.09: «все рамки прямоугольником»): фото по центру по вертикали,
   в архиве текст сверху, кнопка прижата к низу */
.propage .g-photo{display:flex;flex-direction:column;justify-content:center}
.propage .g-arch{display:flex;flex-direction:column}
.propage .g-arch .btn{margin-top:auto;align-self:flex-start}
}
/* Аня 18.09 (седьмая партия): «надо в 3 рамках» - Photo / Mot de passe + clé d'accès / Se déconnecter
   каждый в своей лёгкой рамке (тот же приём border:1px solid var(--line)+радиус 12px, что у .docs/.chat
   на странице дела), а не карточка на всю страницу (её сняли раньше в этой же партии правок) */
.propage .grp{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:0;box-sizing:border-box;min-width:0}
.propage .grp h2{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin:0 0 14px}
.propage .grp .acts{margin-top:16px}
.propage .f{margin-bottom:12px}
.propage .acts{margin-top:16px;gap:8px}
.propage .pkbox{margin:0 0 18px;padding:0 0 18px;border-bottom:1px solid var(--line2);white-space:normal}
.propage .pkadd{width:auto;max-width:100%;white-space:normal;text-align:center}
.propage .pkhint{margin:8px 0 0;font-size:13px;color:var(--dim);line-height:1.4}
.propage .pkmsg{margin:8px 0 0;font-size:13px;line-height:1.4;color:var(--gain,#2e7d32)}
.propage .pkmsg.bad{color:var(--hot)}
.propage .pklist{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:13px}
.propage .pklist:empty{display:none}
.propage .pklist li{display:flex;align-items:center;gap:8px;min-height:28px}
.propage .pklist .pkh{color:var(--dim)}
.propage .pklist .pkl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.propage .pklist .pkd{color:var(--dim);font-variant-numeric:tabular-nums}
.propage h1{font-size:20px;margin:0 0 16px}
.propage .err{color:var(--hot);font-size:13px;margin:0 0 16px}
.propage .ok{color:var(--gain,#2e7d32);font-size:13px;margin:0 0 16px}
.propage .av{width:72px;height:72px;font-size:24px;margin-bottom:10px}
/* фото: крупный круг слева, справа по центру по вертикали подпись + кнопка «Changer la photo» (Аня 18.09, девятая партия);
   родной <input type=file> спрятан (не display:none - остаётся доступным с клавиатуры), вместо него label.btn */
.propage .fphoto{display:flex;align-items:center;gap:22px}
.propage .fphoto .av{width:112px;height:112px;font-size:38px;margin:0;flex:none;box-sizing:border-box;
  border:3px solid var(--card);box-shadow:0 0 0 1px var(--line2),0 3px 10px rgba(0,0,0,.12)}
.propage .fphoto .av-ico{font-size:44px}
.propage .logoutrow{margin:24px 0 0;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}
.propage .fphoto-side{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;min-width:0;position:relative}
.propage .fphoto-name{font-size:15px;font-weight:600;color:var(--ink)}
.propage .fphoto-in{position:absolute;left:0;bottom:0;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.propage .fphoto-side .fpick{margin:0;padding:9px 18px;min-height:40px;box-sizing:border-box;display:inline-flex;align-items:center;user-select:none;-webkit-tap-highlight-color:transparent}
.propage .fphoto-in:focus-visible+.fpick{outline:2px solid var(--accent);outline-offset:2px}
.propage .fphoto-file{font-size:13px;color:var(--dim);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.propage .fphoto-file:empty{display:none}
@media (max-width:359px){.propage .fphoto{flex-direction:column;gap:14px;text-align:center}.propage .fphoto-side{align-items:center}}
.propage .hint{margin-top:12px}
.propage .btn{margin:0;padding:9px 18px;min-height:40px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  font-size:14px;line-height:1.3;text-decoration:none}
.propage a.btn,.propage a.btn:hover,.propage a.btn:focus,.propage a.btn:focus-visible,.propage a.btn:active{text-decoration:none}
.propage .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.propage .archint{margin:0 0 16px;font-size:13px;line-height:1.45;color:var(--dim)}
.propage .archive-section .btn{margin-right:0}
.apage{max-width:640px}
.apage h1{font-size:20px;margin:0 0 14px}
.apage .infointro{margin:0 0 12px;font-size:15px;line-height:1.45}
.apage dl{margin:0 0 10px;font-size:15px;line-height:1.45}
.apage dt{font-weight:600;margin:12px 0 2px}
.apage dd{margin:0}
.apage .infodate{margin:12px 0 0;font-size:13px;color:var(--muted,#777)}
/* страница одного дела */
.home{color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}
h1 .home.newbtn{display:inline-block;padding:7px 14px}
.home:hover{color:var(--accent)}
.thead{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:14px 18px 12px;margin:0 0 14px}
.crumbs{font-size:14px;color:var(--dim);margin-bottom:8px}
.crumbs b{color:var(--ink);font-weight:600}
.crumbs a{color:var(--dim);text-decoration:none}
.crumbs a:hover{color:var(--accent);text-decoration:underline}
.crumbs .sep{margin:0 .45em;opacity:.55}
.ttitle{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ttitle h1{font-size:24px;flex:1 1 auto;min-width:0}
.tid{display:none!important;color:var(--faint);font-size:13px;font-variant-numeric:tabular-nums}   /* номер дела в шапке не показываем никому (Аня 19.09) */
.tpen{align-self:center;margin-left:0}
.tchips{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;margin-top:6px}
.tchips .hbreak{flex:0 0 100%;height:0;margin:0;padding:0;border:0;display:block}.hbreak{display:none}
.tflow{margin-top:8px}
li.hdrw{list-style:none;margin:8px 0 0;padding:0;display:flex}
.rules li.t .pbar,.rules li.t .vote{visibility:hidden}
.ttitle{position:relative}
body.tagged .thead .pen{position:static;transform:none}
body.cs .lid{display:none}
body.cs .thead .tid,body.cs .thead .rank,body.cs .thead .tchips>.chip.doing,body.cs .thead .tchips>.chip.tag,body.cs .thead .par{display:none}
body.tagged .thead .tchips:empty{display:none}
li.hdrw .tagcol{margin-left:0}
.tlogo{float:right;width:64px;height:64px;border-radius:50%;object-fit:cover;margin:0 0 8px 12px}
.tail{margin-top:14px}
.tres{margin-top:8px;font-size:13.5px;color:var(--dim)}
.tres b{color:var(--ink);font-weight:600}
.tnotes{margin-top:10px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;
  overflow-wrap:anywhere;color:var(--ink);border-top:1px solid var(--line);padding-top:10px}
.tnotes a{color:var(--accent)}
.newbtn{border:1px solid var(--line2);background:var(--card);color:var(--ink);
  border-radius:8px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}
.newbtn:hover{border-color:var(--accent);color:var(--accent)}
/* окно правки */
.back{position:fixed;inset:0;background:rgba(0,0,0,.42);display:none;z-index:20;
  align-items:flex-start;justify-content:center;overflow:auto;padding:24px 12px}
.back.on{display:flex}
.dlg{background:var(--card);border:1px solid var(--line2);border-radius:14px;
  width:min(620px,100%);padding:18px 20px 16px;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.dlg h2{margin:0 0 14px;font-size:17px;font-weight:650}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.f{display:flex;flex-direction:column;gap:3px;flex:1 1 150px;min-width:0}
.f.wide{flex-basis:100%}
.f label{font-size:13px;color:var(--dim)}
.f input,.f select,.f textarea{font:inherit;font-size:13.5px;color:var(--ink);
  background:var(--bg);border:1px solid var(--line2);border-radius:7px;padding:6px 8px;
  width:100%;min-width:0}
.f textarea{min-height:74px;resize:vertical}
.checks{display:flex;gap:16px;flex-wrap:wrap;margin:2px 0 12px;font-size:13px}
.checks label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.checks input{width:auto}
.acts{display:flex;gap:10px;align-items:center;margin-top:6px}
.acts .sp{margin-left:auto}
.btn{border:1px solid var(--line2);background:var(--card);color:var(--ink);
  font:inherit;padding:6px var(--btn-px);font-size:var(--btn-fs);line-height:var(--btn-lh);border-radius:var(--btn-r);cursor:pointer}   /* обычная кнопка */
.btn.main{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.btn.del{color:var(--hot);border-color:var(--hot);font-weight:700;text-decoration:none}
.btn:hover{filter:brightness(1.06)}
/* ===== первая версия совету ===== */
/* фоны в оттенках светло-зелёного, розового нет */
body.cs,body.tagged{--bg:#f1f6ee;--card:#fff;--sub-bg:#f7faf5;--line:#dfe9d8;--line2:#cbdac2;--dim:#5c6655;--faint:#66735e;
  --accent:#6a975d;--gold-bg:#e1eed9;--gold-line:#b9d2ad;--gold-ink:#3c5f33;--hot:#b0472f;--hot-bg:#d5e8ca;
  --cool:#50754a;--cool-bg:#e8f1e3;--warm:#50754a;--warm-bg:#e3eedc;--gain:#4b7c43;--gain-bg:#e3eedc}
body.cs .cell,body.tagged .cell{background:#f9fcf7;border-color:var(--line)}
body.cs .u-high>header,body.tagged .u-high>header{background:#d3e7c8}
body.cs .u-high .cellname,body.tagged .u-high .cellname{color:#2e5829}
body.cs .u-low>header,body.tagged .u-low>header{background:#e9f2e4}
body.cs .u-low .cellname,body.tagged .u-low .cellname{color:#4c6f46}
body.tagged .chip.due{color:#9a4630;background:#e1eed9}
body.tagged .chip.who{background:#e5eee0;color:#4d6847}
body.tagged .tagbtn.on,body.tagged .newbtn.big,body.tagged .btn.main{background:var(--gold-bg);border-color:var(--gold-line);color:var(--gold-ink)}
body.tagged .tagbtn.on .tn{color:var(--gold-ink)}
/* значок именно того фильтра, который сузил список (не «все»), обведён - дополняет плашку сверху,
   видно с первого взгляда, какой фильтр включён (Аня 18.09) */
body .tagbtn.on.narrow{border-color:var(--hot);box-shadow:0 0 0 2px var(--hot)}
body.tagged .popv.vn i{background:#e1eed9;color:#9a4630}
body.tagged .popv.vm i{background:#edf3e3;color:#6b5a2a}
body.tagged .popv.vp i{background:#d5e8ca;color:#3c5f33}
body.tagged .popi.on{background:var(--gold-bg);border-color:var(--gold-line)}
body.tagged li.t.picked{background:#eef6ea;outline-color:var(--accent)}
body.tagged li.t.drop-in,body.tagged li.sub.drop-in{outline:2px solid var(--accent);outline-offset:-1px;background:#e4f0de}
body.tagged .cell.over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}
body.cs li.t .rank .rh.on,body.tagged li.t .rank .rh.on{display:none}
/* «сначала надо закончить» на карточке: ясно и заметно */
body.tagged .first{display:block;width:fit-content;max-width:100%;font-size:13px;color:#3c5f33;background:#e1eed9;
  border:1px solid #b9d2ad;border-radius:7px;padding:3px 9px;margin-top:4px}
body.tagged .first a{color:#2b4a24;font-weight:700}
/* столбики: сделано, люди, категории, стоимость, светофор */
body.tagged .tagcol{grid-template-columns:66px 68px 66px 76px 104px 84px}
.sub .sright{grid-template-columns:66px 68px 66px 76px 104px 84px}
body.tagged .tagcol .tg,.sub .sright .tg{max-width:68px}
/* плюсик рядом со значками категорий: добавить ещё одну */
.tg.slot{align-items:center}
.ico.tgplus{width:13px;height:13px;margin-left:1px}
/* здания: буквы корпусов маленькими плашками */
.batchip{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:19px;padding:0 4px;box-sizing:border-box;white-space:nowrap;
  border-radius:5px;background:#fff;border:1px solid #9fb396;color:#3c5f33;font-size:12px;font-weight:700;line-height:1}
/* «Bât. A», а не голая «A» (Аня 18.09: буквы лестниц и зданий путают): две строки, когда несколько зданий сразу или указан этаж */
.batchip.multi,.batchip.fl{flex-direction:column;height:auto;padding:3px 4px;line-height:1.15;text-align:center}
.batchip.fl small{white-space:normal;margin-left:0}
.batchip.fl small::before{content:none}
.bt.slot{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px;max-width:64px;justify-self:center}
/* lieu-cat-gap: значок места («commun» шириной в целую колонку 56px) стоял в 13px от иконки категории, буквы A/B/C в 32px;
   column-gap 12px не хватало (жалоба со скриншотом 18.09, третий раз). Сдвигаем иконку категории вправо на 18px внутри её колонки:
   у колонки 76px запас (самое широкое содержимое 39px), общая ширина строки не меняется. Только на широком экране: на телефоне
   колонки раздвигает space-between */
@media (min-width:761px){
.tagcol>.bt.slot+.tg.slot,.sright>.bt.slot+.tg.slot{margin-left:18px;max-width:50px}
}
/* whoc-centre: колонка «Ответственный» центрируется на одной вертикальной оси у всех строк (Аня 18.09): кнопка растягивается на всю ячейку
   сетки, содержимое (один кружок, «+» или стопка) центрируется внутри неё. Стопка из 2+ кружков сжимается наложением (--ov), чтобы её
   ширина не превышала --W, и остаётся по центру; первый кружок без отрицательного отступа, иначе весь набор съезжал влево на 5px */
body li.t>.tagcol>.whoc.slot:not(.named),body .sub>.sright>.whoc.slot:not(.named){--W:64px;--avs:22px;--n:2;
  --ov:min(calc(var(--avs) - 6px),max(5px,calc((var(--n) * var(--avs) - var(--W)) / (var(--n) - 1))));
  justify-self:stretch;width:auto;display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;padding:0;box-sizing:border-box}
body li.t>.tagcol>.whoc.slot:not(.named):has(.av:nth-child(3)),body .sub>.sright>.whoc.slot:not(.named):has(.av:nth-child(3)){--n:3}
body li.t>.tagcol>.whoc.slot:not(.named):has(.av:nth-child(4)),body .sub>.sright>.whoc.slot:not(.named):has(.av:nth-child(4)){--n:4}
body li.t>.tagcol>.whoc.slot:not(.named):has(.av:nth-child(5)),body .sub>.sright>.whoc.slot:not(.named):has(.av:nth-child(5)){--n:5}
body li.t>.tagcol>.whoc.slot:not(.named):has(.av:nth-child(6)),body .sub>.sright>.whoc.slot:not(.named):has(.av:nth-child(6)){--n:6}
body li.t>.tagcol>.whoc.slot:not(.named):has(.av:nth-child(8)),body .sub>.sright>.whoc.slot:not(.named):has(.av:nth-child(8)){--n:8}
body li.t>.tagcol>.whoc.slot:not(.named) .av,body .sub>.sright>.whoc.slot:not(.named) .av{margin-left:0}
body li.t>.tagcol>.whoc.slot:not(.named) .av+.av,body .sub>.sright>.whoc.slot:not(.named) .av+.av{margin-left:calc(-1 * var(--ov))}
/* «commun» (всё здание, двор и общие части) отличается от букв корпусов цветом, в фильтре отделён чертой (Аня 17.09) */
.batchip.copro{padding:0 5px}
/* шапка дела простым текстом: без овальных рамок, подпись серым, значение обычным текстом */
body :is(.thead .tchips,.tchips.synextline) .slot.named{border:0;background:none;box-shadow:none;padding:0 2px;height:auto;min-height:0;gap:4px}
body :is(.thead .tchips,.tchips.synextline) .slot.named .avname{font-weight:600;font-size:14px;color:var(--ink)}
body :is(.thead .tchips,.tchips.synextline) .slot.named .chip.tag{font-size:14px;font-weight:600;color:var(--ink);gap:4px}
body :is(.thead .tchips,.tchips.synextline) .slot.named .batchip{border:0;background:none;font-size:14px;padding:0;height:auto;min-width:0;color:var(--ink)}
body :is(.thead .tchips,.tchips.synextline) .slot.named .batchip+.batchip::before{content:", ";font-weight:400}
.hgrp{display:inline-flex;align-items:center;gap:6px;margin-right:18px;white-space:nowrap}
body :is(.thead .tchips,.tchips.synextline) .slot.named[data-kind=bat]{gap:0}
body :is(.thead .tchips,.tchips.synextline) .slot.named[data-kind=bat] .batchip+.batchip::before{margin-right:.3em}
body :is(.thead .tchips,.tchips.synextline) .hgrp .hl{font-size:13.5px;font-weight:700;color:var(--ink)}
body :is(.thead .tchips,.tchips.synextline) .slot.named .avname,body :is(.thead .tchips,.tchips.synextline) .slot.named .chip.tag,body :is(.thead .tchips,.tchips.synextline) .slot.named .batchip{font-weight:400!important}
#delback{position:fixed;inset:0;background:rgba(20,30,22,.35);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:12vh 12px;box-sizing:border-box}
.deldlg{max-width:520px}.deldlg p{margin:0 0 14px}
.delacts{display:flex;flex-direction:column;gap:8px}.delacts .btn{text-align:left}
.delacts .del_all{color:#b3261e;border-color:#e3b3ad}
/* сведения из подзадач на странице дела (Аня 17.09: всё видно сразу, не заходя в каждую подзадачу) */
.subnotes{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.nd2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
/* названия подзадач в клетках обычным шрифтом: не спорят с заголовками клеток (Аня 17.09) */
body .subblock li.t .ti,body .subblock li.t .ti .tt,body .subblock li.t .ti a{font-weight:400!important}
.nd2 .ndl>.tpanel,.nd2 .ndr>.chat{margin-top:0}
.nd2 .ndr .chat{max-width:none}
body.tagged .remind-row .newbtn.big.remind{background:none;border:0;box-shadow:none;color:var(--dim);font-weight:500;font-size:13.5px;padding:0;margin:0 0 2px}
body.tagged .remind-row .newbtn.big.remind:hover{color:var(--accent);text-decoration:underline}
body.tagged .topline{margin-bottom:6px}
.nd2 .ndl .chat{max-width:none;margin-top:0}
.tpanel.nonotes,.tpanel.nonotes ~ .docs{display:none!important}   /* Аня 19.09: и в виде разработчика блока Notes у такого дела нет, заметки лежат у каждого собрания */
body.simple .tpanel.nonotes{display:none!important}   /* у дела с отчётами собраний только отчёты: без заметок и без фото (Аня 17.09) */
body.simple .tpanel.nonotes .docs h2{border-top:0;padding-top:0;margin-top:0}
/* есть перевод заметок: показываем только его, французское поле не дублирует текст */
.notesrow .tnotes.trb+textarea{display:none!important}
@media (max-width:900px){.nd2{grid-template-columns:minmax(0,1fr)}}
/* обсуждение дела на его главной (84) справа вверху без своего столбца: карточки рядом уже, ниже на всю ширину (Аня 02.10) */
.nd2.spchat{display:flow-root}
@media (min-width:901px){.nd2.spchat>.ndr{float:right;width:calc((100% - 14px)/3);margin:0 0 14px 14px}.nd2.spchat .dcsecs{display:block}.nd2.spchat .dcsecs>:not(script):not(style){display:flow-root;margin:0 0 12px}}
@media (max-width:900px){.nd2.spchat>.ndr{margin:0 0 14px}}
.subnotes>h3{font-size:15px;margin:0 0 10px}
/* отдельные заметки дела, свёрнутые как протоколы (Аня 17.09) */
.unotes{margin-top:0}
.unotes>h3{font-size:15px;margin:0 0 10px;display:flex;align-items:center;gap:10px}
.unotes>h3 .unew{margin-left:auto;order:9}.unotes>h3:has(.foldall) .unew{margin-left:4px}   /* «+» новой заметки: тот же круг + подпись, что у «Nouvelle sous-tâche» (Аня 18.09) */
.foldall{margin-left:auto;font-size:12.5px;color:var(--dim,#5c6655);background:none;border:0;cursor:pointer;padding:2px 4px;white-space:nowrap}
.foldall:hover{text-decoration:underline}   /* Свернуть все/Развернуть все, если заметок 2+ (Ане 23.09) */
.unlist{display:flex;flex-direction:column;gap:6px;margin:0 0 6px}.unlist>.crd>summary.hasout{padding-left:36px!important}.unlist>.crd>summary.hasout>.fstar.out{right:auto;left:8px;margin:0}
.unotes .crbody{padding:0 14px 10px;white-space:normal}
.unotes .mtext{white-space:pre-wrap;font-size:14px;line-height:1.5}
/* 27.09: папки заметок дела (nf_html): карточка как у папок «Инфо и документы», в списке над заметками без папки; поле «Папка заметок» в правке */
.unotes .nfsecs{display:flex;flex-direction:column;gap:6px;margin:0}.unotes .nfsecs>details.crd{margin:0}
.unotes .nfsecs>.crd>summary.hasout{padding-left:36px}.unotes .nfsecs>.crd>summary.hasout>.fstar.out{right:auto;left:8px;margin:0}
.nffold>summary .dcnum{margin-left:auto;font-size:13.5px;font-weight:400;color:var(--dim,#666);min-width:2.4em;text-align:right}.nffold>summary>.uiacts{margin-left:10px}.nffold>summary>.nfadd{margin:-5px 0 -5px 8px}
.unotes .nffold>.crbody{padding:8px 10px 4px 36px}.nffold>.crbody>.dcintro{margin:0 0 8px;font-size:14px;line-height:1.45;color:var(--dim,#5c6655)}.nffold>.crbody>.nflist:empty{display:none}
@media (max-width:700px){.unotes .nffold>.crbody{padding-left:12px}}
.unotes .nfdrop{outline:2px dashed var(--accent,#3c5f33);outline-offset:2px}
.unedform .nfsel{display:block;margin:8px 0 0;font-size:14px;color:var(--dim,#5c6655)}
.unedform .nfsel select{display:block;width:100%;box-sizing:border-box;margin-top:4px;font:inherit;font-size:15px;padding:8px 10px;border:1px solid var(--line,#cfd8cc);border-radius:8px;background:#fff;color:var(--ink,#222)}
.unotes .ncit .notesrow{margin:0}.unotes .ncit .notesrow>.f>label{display:none!important}
.picked-files .pickf{display:inline-flex;align-items:center;gap:2px;margin-right:8px;font-size:13px;color:var(--dim)}
.drafttag{font-size:13px;color:#a5654d;margin:0 0 4px}.drafttag[hidden]{display:none}
.picked-files .pickx{border:0;background:none;color:#b3261e;cursor:pointer;font-size:12px;padding:0 2px}
.chatacts .aichk{margin-left:auto}.chatacts .aiundo{padding-left:10px;padding-right:10px}.chatacts .aiundo[hidden]{display:none}
/* partager + modifier + supprimer toujours ensemble, sur une seule ligne, même style partout
   (note, synthèse, compte rendu) : Аня 18.09, revu le même jour pour ne plus les séparer */
.unacts{display:inline-flex;align-items:center;gap:2px;margin-left:auto}
.unpen{margin:0;display:inline-flex;gap:2px}.unpen[hidden]{display:none}
.synedit>summary .ico,.thead .unacts .ico{width:16px;height:16px;vertical-align:-3px}   /* значки рядов действий: .uiact (27.09) */
.und.editing .unpen{display:none}
.unedit,.undel{font:inherit;font-size:13px;color:var(--dim);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.unedform[hidden]{display:none}.unedform input[name=title]{width:100%;box-sizing:border-box;font:inherit;padding:7px 10px;border:1px solid var(--line2);border-radius:8px;margin:0 0 6px}
.unedform textarea{width:100%;box-sizing:border-box;min-height:320px;font:inherit}
#crs .unedform textarea{height:60vh;min-height:300px;max-height:70vh;overflow:auto;resize:vertical}
.crpub{font-size:13px;color:var(--dim);margin:0 0 8px;word-break:break-all}
/* Аня 23.09: у совета и у вида сотрудничества размер одинаковый. Прежний блок «крупнее для
   совета» (17.09) убран: кому нужно крупнее, двигает ползунок «Размер текста», выбор хранится
   в cookie fsz на год и в localStorage. Не возвращать укрупнение отдельными правилами. */
.und.editing .unedform{padding-bottom:10px}@media (max-width:700px){.und.editing .unedform{padding-bottom:70px}}
/* правка текста стоит ровно там же, где текст, и той же ширины (Аня 17.09) */
.crd .unedform,.und .unedform,.unotes .unedform{width:100%;box-sizing:border-box;margin:0}
.crd .unedform textarea,.und .unedform textarea,.unotes .unedform textarea{width:100%;box-sizing:border-box;display:block}
.unedform .unfile{display:block;font-size:13px;color:var(--dim);margin:4px 0}
.devlink{margin:8px 0;font-size:13px;color:var(--dim);border:1px dashed var(--line2);border-radius:8px;padding:6px 10px}.devlink summary{cursor:pointer}.devlink .synlk,.devlink .humrow{display:block;margin:4px 0}.devlink .humrow select{font:inherit;margin-left:6px}
.und.editing .unview{display:none!important}
.ncw{position:relative;margin:6px 0;white-space:normal}.ncode{margin:0;padding:10px 12px;background:#f3f3ef;border:1px solid var(--line2,#ccc);border-radius:8px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink,#222)}.ncw>.uicopy{position:absolute;top:4px;right:4px;margin:0;background:var(--card,#fff)}.ncin{font:0.92em ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f0f0ec;padding:1px 5px;border-radius:5px}
.subnotes .snd{margin:0 0 6px}.subnotes .snd.d1{margin-left:18px}.subnotes .snd.d2{margin-left:36px}
.subnotes .snd>summary .sngo{margin-left:auto;text-decoration:none;color:var(--dim);padding:0 4px}
.subnotes .sncont{display:flex;flex-direction:column;gap:6px;padding:0 10px 10px}
.subnotes .snn{white-space:pre-wrap;font-size:14px;line-height:1.45;padding:0 4px}
.unform{border-top:0;padding-top:4px}.unform[hidden]{display:none}
.unform input[name=title]{width:100%;box-sizing:border-box;font:inherit;padding:7px 10px;border:1px solid var(--line2);border-radius:8px;margin:0 0 6px}
/* обсуждения подзадач на странице дела */
.subchats .schat{margin:0 0 14px}
.subchats .snt{font-weight:700;color:var(--ink);text-decoration:none;display:block;margin:0 0 4px}.subchats .snt:hover{text-decoration:underline}
.subchats .smsg{margin:0 0 6px;padding:5px 10px;background:#f2f4ef;border:1px solid var(--line);border-radius:10px;font-size:14px}
.subchats .smh{display:flex;gap:8px;align-items:baseline;font-size:13px;color:var(--dim)}.subchats .smh b{color:var(--ink)}
.subchats .smt{white-space:pre-wrap;line-height:1.45}
.subchats .smore>summary{cursor:pointer;color:var(--dim);font-size:13px;margin:0 0 6px}
.snote{margin:0 0 14px}.snote.d1{margin-left:18px}.snote.d2{margin-left:36px}
.snote .snt{font-weight:700;color:var(--ink);text-decoration:none}.snote .snt:hover{text-decoration:underline}
.snote .snn{font-size:14px;margin:4px 0 6px;line-height:1.45}
.nfold .ness,.nfold .nrest{white-space:pre-wrap;font-size:14px;line-height:1.5}
.nfold .ness{margin:2px 0 6px}
.nfold .nmore summary{cursor:pointer;color:var(--dim);font-size:13px;margin:2px 0}
.nfold .nmore[open] summary{margin-bottom:6px}
.nfold .nrest{background:#f7f9f5;border-left:3px solid #d8e2d2;padding:6px 10px;border-radius:4px;font-size:13.5px}
.notesrow.has-nview:not(.editing) textarea,.notesrow.has-nview:not(.editing) .nlinks{display:none!important}
.notesrow.editing .nfold{display:none!important}   /* карандаш и корзина заметки дела теперь в ряду карточки «Цитаты из документов» (27.09) */
body :is(.thead .tchips,.tchips.synextline){align-items:center}
.snote .dgrid{margin:4px 0 0}
.snote .done{color:var(--dim);font-weight:400;font-size:13px;margin-left:6px}
body :is(.thead .tchips,.tchips.synextline) .slot.named.tg,body.tagged .thead .tagcol .slot.named.tg,body :is(.thead .tchips,.tchips.synextline) .slot.named.whoc{max-width:none;flex-wrap:nowrap}
body :is(.thead .tchips,.tchips.synextline) .slot.named .chip.tag+.chip.tag{margin-left:8px}
.hgrp .hl{font-size:13px;color:var(--dim)}
.hgrp .prog{width:auto}
.hgrp .hics{color:var(--dim);display:inline-flex}.hgrp .hics .ico{width:16px;height:16px}
.hgrp .hduek{font:inherit;font-size:13.5px;padding:2px 4px;border:1px solid var(--line2);border-radius:7px;background:#fff;color:var(--ink)}
.chip.due.late{color:#b3261e!important;background:#fbe3e0!important}
.subn .sdue{color:#9c5f49;text-decoration:none;font-weight:600}.subn .sdue.late{color:#b3261e}
.hgrp .hdue,.hgrp .hmeta{font:inherit;font-size:13.5px;padding:2px 6px;border:1px solid var(--line2);border-radius:7px;background:#fff;color:var(--ink)}
.hgrp .hplace{width:230px;max-width:100%}
.crplace{font-weight:400;color:var(--dim);margin-left:8px;white-space:nowrap}
.schedplace{font:inherit;padding:4px 6px;border:1px solid var(--line2);border-radius:7px;min-width:180px}
.batchip small{font-size:12px;font-weight:700;margin-left:3px;color:#627a5a}
body :is(.thead .tchips,.tchips.synextline) .slot.named .batchip.fl{flex-direction:row}
body :is(.thead .tchips,.tchips.synextline) .slot.named .batchip small{font-size:inherit;color:inherit;margin-left:4px;font-weight:400;white-space:nowrap}
body :is(.thead .tchips,.tchips.synextline) .slot.named .batchip.fl small::before{content:"· "}
.poprow{display:flex;align-items:center;gap:6px;padding:1px 0}
.poprow>.popi{min-width:92px}
.floors{display:flex;flex-wrap:wrap;gap:3px}
.popi.fl{min-width:28px;justify-content:center;padding:3px 6px;font-size:12px;border:1px solid var(--line2)}
.batline{flex-basis:100%;display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap}
.batline>label{min-width:96px}
.batline .floors{gap:4px 10px}
.batline .flc{font-size:12.5px;gap:3px}
#pop{overflow:auto}
.popm input.newtitle{width:300px;max-width:70vw}
/* блок правки на странице дела */
.tpanel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px 10px;margin:0 0 14px}
.tpanel .acts{display:flex;justify-content:flex-end;margin-top:4px}
/* карандаша справа на карточках больше нет: столбик под него не держим */
body.tagged .cell li.t{padding-right:12px}
body.tagged .cell li.t>ul.subl{flex-basis:calc(100% + 12px);margin-right:-12px}
body .subl li.sub{padding-right:5px}
/* ширина списка подзадач задаётся прямо: flex-basis в процентах в этом ряду считался не от той ширины, столбики подзадач уезжали на 29 px */
body.tagged .cell li.t>ul.subl{flex:none;width:calc(100% + 12px);max-width:none;margin-right:-12px}
body.tagged .cell .subl li.sub{margin-right:6px}
.recurcell{margin:0 0 12px}
.cell li.rsec{list-style:none;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b8663;margin:6px 2px 4px;padding:0;border:0;background:none}
.cell li.rsep{list-style:none;height:0;border:0;border-top:1px dashed #b9cbb0;margin:10px 0 12px;padding:0;background:none}
.cell li.rsec[hidden],.cell li.rsep[hidden]{display:none}
.cell li.pzone{list-style:none;margin:12px 0 0;padding:0;border:0;background:none}
.cell:not(.tf-empty){display:flex;flex-direction:column}
.cell>ul{flex:1 1 auto;display:flex;flex-direction:column}
.cell>ul>li.pzone{margin-top:auto;padding-top:12px}
.pzone>details>summary{cursor:pointer;list-style:none;border-top:1px solid #cddbc6;padding:8px 4px 4px;font-size:13px;color:#7d8f76;user-select:none}
.pzone>details>summary::-webkit-details-marker{display:none}
.pzone>details>summary::after{content:" ▸"}
.pzone>details[open]>summary::after{content:" ▾"}
.pzone .pz-ico{font-size:13px;color:#6b8663}
.pzone .pn{font-size:12px;background:#eef3ea;border-radius:8px;padding:0 6px;margin-left:2px}
.pzone.over>details>summary{background:#e6f0df;outline:2px dashed #9fbf92;outline-offset:-2px;border-radius:8px;color:#3f6a38}
.cell .pzone ul.pl{min-height:0;padding:0;margin:6px 0 0}
.pzone li.t{opacity:.75}
.recflag{font-size:12px;margin-left:4px;vertical-align:1px}
body.tagged li.t:not(.subopen)>ul.subl{display:none}
body.tagged li.t.viasub>ul.subl{display:block}
body.donemode li.t.donewrap>.tagcol{visibility:hidden}
body.donemode li.t.donewrap>.body .subn{display:none}
body.donemode li.t.donewrap>.body .ti{opacity:.7}
.frows{display:flex;flex-direction:column;align-items:stretch;gap:4px;flex:1 1 auto!important;min-width:0}   /* без width:100% - иначе выталкивает соседнюю «+» на свою строку (Аня 18.09) */
body .frows .tagbar.fgrp{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px;margin:0;padding:3px 10px 3px 158px;min-height:40px;box-sizing:border-box;border:1px solid var(--line2);border-radius:8px;background:var(--card)}
.fgrp .gt{position:absolute;left:12px;top:3px;line-height:34px;font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap}
body .frows .fgrp .tagbtn,body.cs .frows .fgrp .tagbtn.on,body.tagged .frows .fgrp .tagbtn.on{border:0;background:none;color:var(--ink);padding:5px 5px 5px 4px;min-height:34px;box-sizing:border-box;font-size:15px;line-height:22px;border-radius:6px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;font-weight:400;box-shadow:none}
body .frows .fgrp .tagbtn:hover{background:rgba(0,0,0,.04)}
/* строка «Lieu» с длинными именами «Bât. A»: теснее, чтобы осталась в одну строку на обычном ноутбуке */
body .frows .batbar.fgrp{column-gap:6px}body .frows .batbar.fgrp .tagbtn{padding-left:3px;padding-right:3px}
.fgrp .tagbtn::before{content:"";flex:none;width:20px;height:20px;box-sizing:border-box;border:2px solid #8d9a8f;border-radius:4px;background:#fff;margin-right:0}
body .frows .fgrp .tagbtn.on::before{content:"✓";background:#5b8a61;border-color:#5b8a61;color:#fff;font-size:14px;line-height:16px;text-align:center;font-weight:700}
body .frows .fgrp .tagbtn .tn{font-size:13px;margin-left:0}
body .frows .fgrp .whobtn .av{width:24px;height:24px;font-size:12px;margin:0}
body .frows .fgrp.whresp .whobtn:not(.nobody){padding:5px 6px;gap:5px}
body .frows .fgrp.whresp .whobtn:not(.nobody) .av{width:26px;height:26px;font-size:12px;margin:0}
body .frows .fgrp .tagbtn .ic .ico{width:20px;height:20px}
/* крупнее для 50+ (Аня 18.09): подпись и значки 15px, счётчики 13px, флажок 20px, строка не ниже 34px; на узком экране подпись строки уходит над значки */
@media (max-width:560px){body .frows .tagbar.fgrp{padding:3px 8px}.fgrp .gt{position:static;flex:0 0 100%;line-height:26px;top:auto;left:auto}}
.slab{font-size:13px;color:var(--dim);margin-left:3px;white-space:nowrap}
.thead.rec{background:#e6f1de;box-shadow:inset 4px 0 0 #86b376}
.tpanel .reprow{margin:4px 0 10px}.tpanel .reprow label{font-size:14px;cursor:pointer}
#newback{position:fixed;inset:0;background:rgba(20,30,22,.35);z-index:60;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:4vh 12px;box-sizing:border-box}
.newdlg{background:var(--card);color:var(--ink);border-radius:14px;padding:16px 20px;max-width:780px;width:100%;box-sizing:border-box;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.newdlg h2{margin:0 0 10px;font-size:17px}
.newdlg .nf{display:flex;flex-direction:column;gap:4px;margin:0 0 10px;font-size:13px;color:var(--dim)}
.newdlg .nf input,.newdlg .nf textarea{font:inherit;font-size:15px;color:var(--ink);padding:7px 9px;border:1px solid var(--line2);border-radius:8px;background:#fff}
.newdlg .ngrp{border:1px solid var(--line2);border-radius:8px;margin:0 0 10px;padding:4px 10px 8px;display:flex;flex-wrap:wrap;gap:6px 14px}
.newdlg .ngrp legend{font-size:13px;font-weight:600;color:var(--dim);padding:0 4px}
.newdlg .nchk{display:inline-flex;align-items:center;gap:5px;font-size:14px;cursor:pointer;white-space:nowrap}
.newdlg .nchk input[type=checkbox],.newdlg .nchk input[type=radio]{width:16px;height:16px;margin:0}
.newdlg .ncells{display:flex;flex-wrap:wrap;gap:6px 14px;width:100%}
.newdlg .nchk .av{width:24px;height:24px;font-size:12px;margin:0}
.newdlg .nchk .chip{border:0;background:none;padding:0}
.newdlg .nchk .ico{width:16px;height:16px}
.newdlg .ndue input{font:inherit;font-size:14px;padding:3px 6px;border:1px solid var(--line2);border-radius:6px}
.newdlg .nacts{display:flex;gap:8px;justify-content:flex-end}
body.simple .ideaset,body.simple .recflag,body.simple .mslot,body.simple .nomoney{display:none!important}
body.simple .tlight .vb.tl.up.hot::after,body.simple li.t .tagcol .tlight .vb.tl.up.subhot::after{content:none!important}
body.simple.tagged .cell li.t[data-rec]{background:none;box-shadow:none}
body.simple .thead.rec{background:var(--card);box-shadow:none}
body.tagged .tagcol,.sub .sright{grid-template-columns:66px 68px 76px 104px 84px}   /* колонка денег .mslot скрыта везде, в виде разработчика её место не резервируем: раскладка та же, что у совета (Аня 19.09) */
body.simple .loglink2,body.simple .loglink,body.simple .bell{display:none!important}
.ico.tgplus{display:none}
/* пока голосование скрыто (HIDE_VOTES), vote_widget оставляет невидимый маркер .novote вместо
   разметки светофора: сеточные колонки карточки (те же 58/76/66/76/104/84px) заданы по числу
   столбцов и без светофора последний остаётся пустым - здесь просто не резервируем его.
   :where() держит одну и ту же весомость отбора, что у исходных правил выше, так что порядок в
   файле решает: как только HIDE_VOTES снова станет False, .novote перестанет появляться и эти
   строки перестанут подходить сами - старую раскладку возвращать вручную не нужно (Аня 18.09) */
.novote{display:none}   /* сам маркер невидим и не создаёт своей ячейки сетки/flex */
body.tagged .tagcol:where(:has(.novote)){grid-template-columns:66px 68px 66px 76px 104px}
.sub .sright:where(:has(.novote)){grid-template-columns:66px 68px 66px 76px 104px}
body.tagged .tagcol:where(:has(.novote)),.sub .sright:where(:has(.novote)){grid-template-columns:66px 68px 76px 104px}
.tchips:where(:has(.novote)){gap:8px}
@media (max-width:760px){
body.tagged .tagcol,body.simple.tagged .tagcol,body .sub .sright,body.simple .sub .sright{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:auto;justify-content:space-between;column-gap:6px;width:100%;max-width:100%;box-sizing:border-box}
body.tagged .prog{width:auto}body.tagged .prog input[type=range]{width:46px}
}
.login .linkbtn{display:block;width:auto;margin:10px auto 0;background:none;border:0;box-shadow:none;color:var(--dim);text-decoration:underline;font-size:13.5px;padding:4px 0;cursor:pointer}
body.tagged .cell.u-high>header,body.tagged .cell.u-low>header{background:#dcebd2}
/* четыре клетки матрицы: важно+срочно красный, важно+не срочно оранжевый, не важно+срочно жёлтый,
   не важно+не срочно зелёный (Аня 23.09). Страница совета (body.cs) остаётся как была. */
/* серо-белый сайт: цвет живёт только в рамке клетки, в её подписи и в строках дел (Аня 23.09) */
body.cs,body.tagged{--bg:#f4f4f3;--card:#fff;--sub-bg:#fafaf9;--line:#e4e4e1;--line2:#d5d5d1;--dim:#5c5c58;--faint:#6b6b66;
  --gold-bg:#eeeeec;--gold-line:#dad9d5;--gold-ink:#3f3f3d;--hot-bg:#f6e7e2;
  --cool:#5d5d58;--cool-bg:#f0f0ee;--warm:#5d5d58;--warm-bg:#efefed}
body.tagged .cell{background:var(--card)}
body.tagged .chip.due{background:#f4efec}
body.tagged .chip.who{background:#eeeeec;color:#55554f}
body.tagged .cell.i-high.u-high{border-color:var(--q1)}
body.tagged .cell.i-high.u-low{border-color:var(--q2)}
body.tagged .cell.i-low.u-high{border-color:var(--q3)}
body.tagged .cell.i-low.u-low{border-color:var(--q4)}
body.tagged .cell.i-high.u-high>header{background:var(--q1-bg);border-bottom-color:var(--q1)}
body.tagged .cell.i-high.u-high .cellname{color:var(--q1)}
body.tagged .cell.i-high.u-low>header{background:var(--q2-bg);border-bottom-color:var(--q2)}
body.tagged .cell.i-high.u-low .cellname{color:var(--q2)}
body.tagged .cell.i-low.u-high>header{background:var(--q3-bg);border-bottom-color:var(--q3)}
body.tagged .cell.i-low.u-high .cellname{color:var(--q3)}
body.tagged .cell.i-low.u-low>header{background:var(--q4-bg);border-bottom-color:var(--q4)}
body.tagged .cell.i-low.u-low .cellname{color:var(--q4)}
body.tagged .cell.i-high.u-high li.t:not(.drop-in){background:var(--q1-row)}
body.tagged .cell.i-high.u-low li.t:not(.drop-in){background:var(--q2-row)}
body.tagged .cell.i-low.u-high li.t:not(.drop-in){background:var(--q3-row)}
body.tagged .cell.i-low.u-low li.t:not(.drop-in){background:var(--q4-row)}
/* элементы интерфейса в серо-белой гамме: плюс, шкала выполнения, ползунок размера текста (Аня 23.09) */
body.cs,body.tagged{--accent:#76766f}
body.tagged .pbar i{background:#f0f0ee;border-color:#e0e0dd}
body.tagged .pbar i.on{background:#8d8d87;border-color:#7d7d77;color:#fff}
body.tagged input.fszr::-webkit-slider-runnable-track{background:#e6e6e3;border-color:#c3c3bf}
body.tagged input.fszr::-moz-range-track{background:#e6e6e3;border-color:#c3c3bf}
body.tagged input.fszr::-webkit-slider-thumb{background:#7a7a74;box-shadow:0 0 0 1px #5a5a55,0 2px 5px rgba(0,0,0,.3)}
body.tagged input.fszr::-moz-range-thumb{background:#7a7a74;box-shadow:0 0 0 1px #5a5a55,0 2px 5px rgba(0,0,0,.3)}
body.tagged input.fszr:focus-visible{outline-color:#5a5a55}
body.tagged .fszbox .fsztick i{background:#8a8a84}
body.tagged .fszbox .fsztick,body.tagged .fszbox .fsza{color:#55554f}
body.tagged .prog input[type=range]::-webkit-slider-runnable-track,body.tagged .f-progress input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right,#76766f var(--p,0%),#e4e4e1 var(--p,0%))}
body.tagged .prog input[type=range]::-moz-range-track,body.tagged .f-progress input[type=range]::-moz-range-track{background:#e4e4e1}
body.tagged .devbox .devsw.on .sw{background:#76766f}
body.tagged .devbox .devsw.on .l1{color:#4a4a45}
body.tagged .sidenav .cur{border-color:#6f6f6b;box-shadow:inset 0 2px 4px rgba(0,0,0,.18),inset 0 0 0 1px rgba(90,90,86,.35)}
body.tagged input,body.tagged select,body.tagged textarea{accent-color:#76766f}
/* меню слева нейтрально-серое, чтобы зелёные кнопки не спорили с цветами клеток (Аня 23.09) */
body.tagged.hasnav>.sidenav .newbtn.big:not(.fszbox){background:#eeeeec;border-color:#dad9d5;color:#3f3f3d}
body.tagged.hasnav>.sidenav .newbtn.big.cur{border-color:#6f6f6b;box-shadow:inset 0 2px 4px rgba(0,0,0,.18),inset 0 0 0 1px rgba(90,90,86,.35)}
body.tagged.hasnav>.sidenav .sideabout,body.tagged.hasnav>.sidenav .sideme{border-color:#dad9d5;color:#4a4a48}
body.tagged.hasnav>.sidenav .sideabout[aria-current],body.tagged.hasnav>.sidenav .sideme.cur{background:#eeeeec}
body.tagged.hasnav>.sidenav .newbtn.big .ic,body.tagged.hasnav>.sidenav .newbtn.big .tn{color:inherit}
body.tagged .frows .tagbar.fgrp{background:#f3f3f2;border-color:#dcdcda}
body.tagged .frows .fgrp .gt{color:#5c5c5c}
body.tagged .frows .fgrp .tagbtn,body.cs.tagged .frows .fgrp .tagbtn.on{color:#555}
body.tagged .frows .fgrp .tagbtn.on::before{background:#7d7d7d;border-color:#7d7d7d}
/* фильтр, который сейчас сужает список: яркий значок (заливка, жирный шрифт), а не обычная галочка; строка обведена,
   в конце строки короткая пометка и ссылка «Réinitialiser» вместо отдельной плашки во всю ширину (Аня 18.09) */
body .frows .fgrp .tagbtn.on.narrow{background:var(--hot)!important;color:#fff!important;font-weight:700!important;border-radius:999px;padding:5px 9px 5px 5px!important;outline:0!important;box-shadow:none!important}
body .frows .fgrp .tagbtn.on.narrow::before{background:#fff!important;border-color:#fff!important;color:var(--hot)!important}
body .frows .fgrp .tagbtn.on.narrow .tn{color:#ffe4da!important}
body .frows .fgrp .tagbtn.narrow:not(.on){background:#fbe6df!important;color:var(--hot)!important;font-weight:700!important;border-radius:999px;padding:5px 9px 5px 5px!important;box-shadow:inset 0 0 0 2px var(--hot)!important}
body .frows .tagbar.fgrp.fnarrow{border-color:var(--hot);background:#fff8f5}
.fgrp .fnote{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px 8px;padding-left:6px;font-size:14px;line-height:20px;color:var(--hot);font-weight:600}
.fgrp .fnote[hidden]{display:none}
.fgrp .fnote .fbanner-reset{border:0;background:none;padding:0;margin:0;font:inherit;font-weight:700;color:var(--hot);text-decoration:underline;cursor:pointer}
.fgrp .fnote .fbanner-reset:hover{filter:brightness(.85)}
body.cs.tagged .acts2 .newbtn.big,body.tagged .acts2 .newbtn.big,body.tagged .remind-row .newbtn.big{background:#f1f1f0;border-color:#d4d4d2;color:#454545}
body.tagged .headacts .me{color:#555}
body.ro .tasknew,body.ro .chatform,body.ro .crnew,body.ro .cshide,body.ro .mact,body.ro #btn_del,body.ro .tpanel,body.ro .newbtn.clip{display:none!important}
body.ro .slot,body.ro .mslot,body.ro .vb,body.ro .prog,body.ro .lawstar,body.ro .hotflag,body.ro .ideaset,body.ro .ti .tt{pointer-events:none}
body.ro li.t{cursor:default}
.robadge{font-size:13px;color:var(--dim);border:1px solid var(--line2);border-radius:999px;padding:1px 8px;margin-right:6px;white-space:nowrap}
/* язык: один флажок, щелчок переключает на язык этого флага (интерфейс и тексты) */
.langsw{display:inline-flex;align-items:center;padding:3px;border:1px solid #cfcfcd;border-radius:6px;background:#fff;line-height:0;text-decoration:none}
/* плашка разработчика: поверх страницы в углу, в раскладку не входит, у совета страница выглядит так же */
.devbox{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;width:100%;box-sizing:border-box;padding:5px 8px;background:rgba(255,255,255,.95);border:1px dashed #a9a9a6;border-radius:9px;font-size:12px;color:#555}
.devbox .devsw{display:inline-flex;align-items:center;gap:6px;color:#333;text-decoration:none;white-space:nowrap}
.devbox .devsw .sw{position:relative;flex:none;width:32px;height:18px;border-radius:999px;background:#c4c4c1;transition:background .15s}
.devbox .devsw .sw i{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.35);transition:left .15s}
.devbox .devsw.on .sw{background:#3a9d4f}
.devbox .devsw.on .sw i{left:16px}
.devbox .devsw .l0,.devbox .devsw .l1{color:#757572}
.devbox .devsw:not(.on) .l0{color:#222;font-weight:700}
.devbox .devsw.on .l1{color:#1f6b2c;font-weight:700}
.devbox .devnote{color:#757575;font-size:12px;flex:0 0 100%}   /* пометка отдельной строкой ниже */
.devbox .robadge{margin:0}
/* первая версия для совета: только самое нужное, остальное в виде разработчика */
body.simple .tpanel .reprow,body.simple .tpanel .parentbox,body.simple .tpanel .depbox,body.simple .histbox,body.simple .tail .hist{display:none!important}
.linksbox{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px 6px;margin:0 0 14px}.linksbox h2{font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink);margin:0 0 10px}
.linksbox .setbox,.linksbox .depbox{border:0;background:none;padding:0;margin:0 0 12px}body.ro .linksbox{display:none!important}/* Аня 06.10: рамку связей видят все, кто может править, а не только админы и разработчики */.linksbox .hint{font-size:12px;color:var(--dim);margin:0 0 3px}
.linksbox{padding:10px 14px 2px}.linksbox h2{margin:0 0 6px}.linksbox .setbox,.linksbox .depbox{margin:0 0 8px}
.linksbox .depsel{display:none}.linksbox .deplist{max-height:104px;margin-top:2px;padding:3px 4px;position:relative}
.linksbox .deplist label{padding:1px 4px;line-height:1.25}.linksbox .deplist input{margin:0}
.linksbox #f_parent_q,.linksbox #f_dep_q,.linksbox #synlk_q{padding:4px 8px;font-size:13px;margin:0}   /* связи с другими задачами: отдельная рамка, только в виде разработчика (Аня 19.09) */
.linksbox .catrow{margin:0 0 8px}
.linksbox .catpick{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line2);background:var(--card);border-radius:999px;padding:3px 12px 3px 8px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer}
.linksbox .catpick:hover{background:var(--bg)}
.linksbox .catpick .chip.tag{font-size:17px}
.linksbox .catpick svg{width:18px;height:18px}
.linksbox .catpick .catnone{color:var(--dim)}
.linksbox details.parentmore{margin:0 0 8px}.linksbox details.parentmore>summary{cursor:pointer;font-size:12px;color:var(--dim);margin:0 0 4px}
/* Аня 06.10: связи нужны редко - рамка свёрнута в одну строку, в ней видно, что уже связано */
.linksbox>summary{cursor:pointer;padding:0 0 8px;color:var(--dim)}.linksbox>summary h2{display:inline;font-size:14px;font-weight:600;color:var(--dim);margin:0}
.linksbox[open]>summary h2{color:var(--ink)}.linksbox .lksum{font-size:12px;margin-left:8px}
.headacts .newbtn.big.remind{white-space:normal;max-width:230px;text-align:left;line-height:1.3;text-decoration:none}
.headacts .newbtn.big.remind .ico{flex:none}
.subhead{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin:18px 0 10px;padding:12px 16px;background:var(--card);border:1px solid var(--line2);border-radius:12px}
.subhead h2{font-size:17px;margin:0 0 3px;line-height:1.3}
.subhead p{margin:0;font-size:13px;color:var(--dim)}
.langsw:hover{border-color:#8a8a88}
.langsw svg{width:30px;height:20px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.cshide{cursor:pointer;opacity:.35;color:var(--dim);font-size:.9em;margin-left:5px;display:inline-flex;vertical-align:-.12em}
.cshide:hover{opacity:.8}.cshide.on{opacity:1;color:var(--hot)}
.plock{cursor:pointer;opacity:.35;color:var(--dim);font-size:1em;padding:3px 6px;display:inline-flex;align-items:center}
.popen{cursor:pointer;opacity:.35}.popen:hover{opacity:.8}.popen.on{opacity:1;color:var(--accent,#3c5f33)}
.plock:hover{opacity:.8}.plock.on{opacity:1;color:var(--hot)}

.drvw{display:inline-flex;align-items:center;gap:2px}.drvst{font-size:12px;color:var(--dim);white-space:nowrap;margin-right:2px}
.drvbtn .ico{width:16px;height:16px;vertical-align:0}.drvbtn{cursor:pointer;opacity:.35;color:var(--dim);font-size:16px;line-height:1;padding:3px 6px;display:inline-flex;align-items:center}.drvbtn:hover{opacity:.8}
.lk .lkc{display:none}.on .lk .lko{display:none}.on .lk .lkc{display:inline}
.plocked{opacity:.85;filter:saturate(.25);background:#e3e7df!important}.plocked:hover{opacity:1}
.privmark{cursor:pointer;opacity:.3;color:var(--dim);font-size:13px;margin-left:8px;display:inline-flex;vertical-align:-.1em}
.privmark:hover{opacity:.8}.privmark.on{opacity:1;color:#c0281c}.privmark.on .lk{stroke-width:2.4}
body.hasnav>.sidenav .newbtn.big{position:relative}body.hasnav>.sidenav .privmark{position:absolute;right:7px;top:50%;transform:translateY(-50%);margin:0}   /* замок в меню не занимает места: кнопки те же, что в виде пользователя */
/* дело под замком (cs_hidden) не серое, только красный замок: серым бывает лишь список ожидания (Аня 27.09) */
/* Аня 06.10: «Законченные задачи» - самая нижняя рамка на всю ширину, серая, свёрнута; пустая не видна */
.grid>.cell.donecell{grid-column:1/-1}.cell.donecell:not(:has(li.t)){display:none}
body .cell.donecell,body.tagged .cell.donecell,body.cs .cell.donecell{background:#eceeea;border-color:#d3d8ce}
body .cell.donecell>header,body.tagged .cell.donecell>header,body.cs .cell.donecell>header{background:#e1e5de}
body.donemode .cell.donecell>ul{display:block!important}
/* законченные подзадачи под строкой «Законченные N» в конце своей надзадачи */
body .subl li.dgh{list-style:none;margin:6px 6px 0 26px;padding:0}
body .subl li.dgh.d1{margin-left:52px}body .subl li.dgh.d2{margin-left:78px}body .subl li.dgh.d3{margin-left:104px}body .subl li.dgh.d4{margin-left:130px}body .subl li.dgh.d5,body .subl li.dgh.d6{margin-left:156px}
.dgt{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;text-align:left;font:inherit;font-size:13.5px;color:var(--dim);background:transparent;border:1px dashed var(--line2);border-radius:8px;padding:5px 10px;cursor:pointer}
.dgt:hover{border-color:var(--dim)}
body:not(.donemode) li.dgrp:not(.dgopen){display:none!important}
/* пятая рамка «Liste d'attente» (Аня 19.09): на всю ширину под четырьмя, серая; в ней дела с полем paused */
.grid>.cell.waitcell{grid-column:1/-1}
body .cell.waitcell,body.tagged .cell.waitcell,body.cs .cell.waitcell{background:#eceeea;border-color:#d3d8ce}
.cell.waitcell>header{background:#e1e5de;cursor:pointer;user-select:none}
.cell.waitcell .wname::before{content:"▾";color:#6d7869;font-size:14px}
.cell.waitcell.wclosed .wname::before{content:"▸"}
.cell.waitcell.wclosed>ul{display:none}
.cell.waitcell.wclosed>header{border-bottom:0}
.cell.waitcell>header .cellname{color:#4d5a48!important}
.cell.waitcell .wname{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;min-width:0}
.cell.waitcell .waitsub{font-size:13px;font-weight:400;color:#6d7869}
li.t.waiting,li.sub.waiting{opacity:.85;filter:saturate(.25);background:#e3e7df!important}li.t.waiting:hover,li.sub.waiting:hover{opacity:1}
.newbtn.navlocked{opacity:.85;filter:saturate(.25)}
/* Аня 19.09: в виде разработчика больше нет суммы «€», 🔔, огонька на лампе и полной панели правки (срок ставится в шапке дела);
   родитель, зависимости, история и замки остаются */
.mslot,.nomoney,.bell{display:none!important}
.tlight .vb.tl.up.hot::after,li.t .tagcol .tlight .vb.tl.up.subhot::after{content:none!important}
.tpanel>.row.own,.tpanel>.checks.reprow,.tpanel>.checks.own{display:none!important}
body.dev .chat h2,body.dev .tpanel .notesrow>.f>label{font-size:17px!important;font-weight:700;letter-spacing:0!important;text-transform:none!important;color:var(--ink)!important;line-height:1.3;margin:0 0 8px}
body.dev .chat h2>.ico{display:none}body.privpage .wrap{filter:saturate(.25)}
body .tlight .vb.tl.up.go .vn[data-full],body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.up.subgo .vn[data-full]{display:block;font-size:0}
body .tlight .vb.tl.up.go .vn[data-full]::after,body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.up.subgo .vn[data-full]::after{content:attr(data-full);font-size:6px;color:#1c2a1e;text-shadow:0 0 2px rgba(255,255,255,.8)}
body .tlight .vb.tl.up.hot .vn[data-full],body .tlight .vb.tl.up.subhot .vn[data-full]{display:none}
body li.t:not(.subopen):not(.viasub)>.body .ti .lawstar.sub-on{color:#d42a1f;opacity:1}
body li.t:not(.subopen):not(.viasub)>.body .ti .hotflag.sub-on{filter:none;opacity:1}
body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.up.subhot::after{content:"🔥";position:absolute;left:50%;top:50%;transform:translate(-50%,-62%);font-size:12px;line-height:1;filter:drop-shadow(0 0 1px rgba(0,0,0,.5));pointer-events:none}
body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.up.subhot .vn{display:none}
body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.up.subgo{background:#3cff58;transform:scale(1.6);z-index:2;box-shadow:0 0 0 1.5px #fff,0 0 9px 4px rgba(60,255,88,.95),0 0 22px 9px rgba(60,255,88,.55)}
body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.mid.subwarn{background:#ffc300;transform:scale(1.6);z-index:2;box-shadow:0 0 0 1.5px #fff,0 0 9px 4px rgba(255,195,0,.95),0 0 22px 9px rgba(255,195,0,.5)}
body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.subgo::before,body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.subwarn::before{display:none}
body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.subgo .vn,body li.t:not(.subopen):not(.viasub)>.tagcol .tlight .vb.tl.subwarn .vn{font-size:6px;color:#1c2a1e;text-shadow:0 0 2px rgba(255,255,255,.8)}
li.sub.sf-hide{display:none}
body.tagged .vote .score{display:none}
body .tlight{gap:7px}
body .tlight .vb.tl .vn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:8px;font-weight:800;line-height:1;color:#fff;letter-spacing:-.04em;white-space:nowrap;pointer-events:none;z-index:3;text-shadow:0 0 2px rgba(0,0,0,.7)}
body .tlight .vb.tl .vn:empty{display:none}
body .tlight .vb.tl.go .vn,body .tlight .vb.tl.warn .vn{font-size:6px}
body .tlight .vb.tl.mine .vn,body .tlight .vb.tl.go .vn,body .tlight .vb.tl.warn .vn{color:#1c2a1e;text-shadow:0 0 2px rgba(255,255,255,.8)}
body .tlight .vb.tl.hot .vn{display:none}
body.tagged .cell li.t:has(>ul.subl){cursor:pointer}
body.tagged .cell li.t[data-rec]{background:#e6f1de;border-radius:10px;box-shadow:inset 4px 0 0 #86b376}
.subn{display:block;flex:0 0 100%;width:100%;box-sizing:border-box;margin:1px 0 0 8px;font-size:13px;color:#62735c;white-space:nowrap;cursor:pointer}.subprev{display:block;flex:0 0 100%;width:100%;box-sizing:border-box;margin:1px 0 0 8px;font-size:12.5px;color:#62735c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* всегда отдельной строкой под названием (Аня 17.09) */
.subn::before{content:"▸ "}
li.t.subopen>.body .subn::before{content:"▾ "}
.subn:hover{color:var(--accent)}
.recurcell>header{background:#f8f0cf}
.recurcell .cellname{color:#6d5b1c}
/* раздел «Tâches récurrentes» на главной (Аня 25.09): во всю ширину под четырьмя клетками, спокойный жёлтый (Аня 26.09) */
.grid>.cell.recurcell{grid-column:1/-1}
body .cell.recurcell,body.tagged .cell.recurcell,body.cs .cell.recurcell{background:#fdf8e4;border-color:#e2d391}
body .cell.recurcell>header,body.tagged .cell.recurcell>header,body.cs .cell.recurcell>header{background:#f6ecc4}
body .cell.recurcell>header .cellname,body.tagged .cell.recurcell>header .cellname,body.cs .cell.recurcell>header .cellname{color:#5d4c14!important}
.cell.recurcell>header .cellname::before{color:#7a6722}
.cell.recurcell .recrow{color:#63551f}
.cell.recurcell .recrow input{border-color:#e2d391}
.cell.recurcell .recrow .recst{color:#5d4c14}
.recrow{flex:0 0 100%;width:100%;box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:4px 0 0;font-size:13px;color:#4e6446}
/* Аня 26.09: поля повторяющегося дела в ту же строку, что и название: высота строки как у обычного дела */
.cell.recurcell li.t>.recrow{order:1;flex:0 0 auto;width:auto;flex-wrap:nowrap;margin:0}
@media (max-width:1000px){.cell.recurcell li.t>.recrow{flex:0 0 100%;width:100%;flex-wrap:wrap}}   /* Аня 09.10: горизонтальной прокрутки быть не должно */
.cell.recurcell li.t>.tagcol{order:2}
.cell.recurcell li.t>.cardacts+.tagcol{margin-left:0}.cell.recurcell li.t>.cardacts{margin-left:auto}   /* Аня 10.10: во второй строке сердечко слева, значки справа */.cell.recurcell li.t>.pen{order:3}.cell.recurcell li.t>ul{order:4}
.recrow .recl{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.recrow .reclead{width:56px}
.recrow input{font:inherit;font-size:13px;padding:2px 5px;border:1px solid #c6dcba;border-radius:7px;background:#fff;color:inherit}
.recrow .recst{color:#3c5f33;font-weight:700}
.recdue{white-space:nowrap}.recdue.late{color:#b0472f;font-weight:600}
.recmark{display:inline-flex;align-items:center;color:#4e7443}.recmark .ico{width:14px;height:14px}
.recdone{font:inherit;padding:4px var(--sbtn-px);font-size:var(--sbtn-fs);line-height:var(--sbtn-lh);border-radius:var(--btn-r);cursor:pointer;   /* маленькая кнопка */
  border:1px solid #6a975d;background:#6a975d;color:#fff;font-weight:600}
.recdone:hover{background:#5b8550;border-color:#5b8550}.recdone[disabled]{opacity:.5;cursor:default}
body.ro .recdone,body.vw .recdone,body.ro .recrow input{display:none!important}
li.t.recinst{box-shadow:inset 4px 0 0 #86b376;border-radius:10px}
/* правка названия на месте */
.tedit{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;box-sizing:border-box;width:var(--ico-box);height:var(--ico-box);margin:-7px -4px -7px 0;
  color:var(--ico-col);cursor:pointer;border-radius:8px;line-height:0;position:relative;top:-1px}   /* постоянный карандаш: 32 px под палец, а высоту строки не растит */
.tedit .ico{width:var(--ico);height:var(--ico);stroke-width:2}
h1 .tedit{width:38px;height:38px;margin:-8px -4px -8px 0}
h1 .tedit .ico{width:22px;height:22px}
.tedit:hover,.tedit:focus-visible{background:var(--accent);color:#fff;outline:none}
body.ro .tedit{display:none!important}
.tinput{font:inherit;font-weight:inherit;flex:1 1 auto;width:100%;min-width:150px;box-sizing:border-box;padding:2px 6px;
  border:1.5px solid var(--accent);border-radius:6px;background:#fff;color:var(--ink)}
.editing{display:flex!important;align-items:center;flex:1 1 100%}
/* правка протокола и заметки: карточка остаётся обычным блоком, окно правки на месте текста и той же ширины (Аня 17.09).
   Общее правило .editing выше сделано для сообщений обсуждения, из-за него карточка становилась в две колонки */
.crd.editing,.und.editing,.unotes .und.editing{display:block!important;align-items:initial;flex:none}
.editing>a.lnk,.editing>.tt,.editing>.tflags,.editing>.ideaflag,.editing>.chatc{display:none}
.tflags{white-space:nowrap;display:inline-flex;align-items:center;vertical-align:middle}
.ideaset{font-size:13px;line-height:0;position:relative;top:-.04em;padding:0 2px;cursor:pointer;filter:grayscale(1);opacity:.3;
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.ideaset:hover{filter:none;opacity:.65}
h1 .ideaset{font-size:22px}
/* проект задачи (бывшая «тема для размышления», Аня 10.10): пунктирная рамка, фон светлее обычной строки, подпись;
   вместо ползунка выполнения голосование 👍 👎 🤷 */
body.tagged .cell li.t.idea,body .subl li.sub.idea,.thead.idea{border-style:dashed;border-color:#aebfa4;
  background-image:linear-gradient(rgba(255,255,255,.62),rgba(255,255,255,.62))}
body li.t.idea>.body .ti{font-weight:500}
.ideaflag{display:inline-block;font-size:13px;font-weight:600;color:var(--dim);background:#eef4ea;border:1px dashed #aebfa4;
  border-radius:999px;padding:0 8px;margin-left:6px;vertical-align:2px;line-height:1.55;white-space:nowrap;cursor:pointer}
.ideaflag:hover{color:var(--gold-ink);border-color:var(--gold-ink)}
h1 .ideaflag{font-size:13px;vertical-align:5px}
li.t.idea>.tagcol .prog,li.t.idea>.tagcol .mslot,
li.sub.idea>.sright>.prog,li.sub.idea>.sright>.mslot,
.thead.idea .hdrw .prog,.thead.idea .hdrw .mslot{visibility:hidden}   /* у проекта ответственный остаётся: кому-то его подготовить */
li.t.idea>.tagcol .prog,li.sub.idea>.sright>.prog,.thead.idea .hdrw .prog{display:none}   /* место ползунка занимает голосование */
.ballot{display:inline-flex;align-items:center;gap:1px;white-space:nowrap}
.ballot .bv{display:inline-flex;align-items:center;gap:1px;height:24px;padding:0 3px;margin:0;border:1px solid transparent;border-radius:999px;
  background:none;cursor:pointer;font-size:14px;line-height:1;filter:grayscale(1);opacity:.5;
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.ballot .bv i{font-style:normal;font-size:11px;font-weight:600;color:var(--dim);font-family:inherit;min-width:0}
.ballot .bv:has(i:not(:empty)){opacity:.8}
.ballot .bv:hover{filter:none;opacity:1}
.ballot .bv.mine{filter:none;opacity:1;border-color:var(--line2);background:var(--card)}
.tchips .ballot{height:26px}
.dlgidea{font-size:20px;line-height:0;position:relative;top:-.04em;padding:0 2px;cursor:pointer;
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.dlgidea:not(.on){filter:grayscale(1);opacity:.3}
.dlgidea:not(.on):hover{filter:none;opacity:.65}
/* сделано, %: ползунок, как в окне правки */
.prog{display:inline-flex;align-items:center;gap:5px;width:102px}
.prog input[type=range]{width:64px}
/* один вид ползунка на карточке, в шапке дела и в окне правки: тонкая полоса, залитая до отметки, белый кружок */
.prog input[type=range],.f-progress input[type=range]{-webkit-appearance:none;appearance:none;height:18px;margin:0;padding:0;border:0;
  background:transparent;cursor:pointer}
.prog input[type=range]::-webkit-slider-runnable-track,.f-progress input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:3px;
  background:linear-gradient(to right,var(--accent) var(--p,0%),#dbe5d3 var(--p,0%))}
.prog input[type=range]::-webkit-slider-thumb,.f-progress input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;
  margin-top:-5px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 2px rgba(0,0,0,.2)}
.prog input[type=range]::-moz-range-track,.f-progress input[type=range]::-moz-range-track{height:5px;border-radius:3px;background:#dbe5d3}
.prog input[type=range]::-moz-range-progress,.f-progress input[type=range]::-moz-range-progress{height:5px;border-radius:3px;background:var(--accent)}
.prog input[type=range]::-moz-range-thumb,.f-progress input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--accent)}
.prog output{font-size:13px;font-weight:700;color:var(--ink);min-width:36px}
.prog.p0 output{color:var(--faint);font-weight:600}
/* стоимость */
button.mslot{border:0;background:none;padding:0 3px;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);
  white-space:nowrap;min-height:22px;display:flex;align-items:center}
button.mslot:hover{outline:1px dashed var(--line2);border-radius:6px}
.nomoney{color:var(--faint);font-weight:400}
.tchips .mslot,.tchips .prog{height:26px}
.popm{display:flex;flex-direction:column;gap:6px;font-size:13px;padding:4px 6px}
.popm input{font:inherit;font-size:15px;padding:6px 8px;border:1px solid var(--line2);border-radius:8px;width:170px}
.popacts{display:flex;justify-content:flex-end;padding:4px 6px}
/* светофор: общее решение - крупная лампа с сильным ореолом поверх своей */
body .tlight{position:relative}
body .tlight .vb.tl{transition:transform .15s}
body .tlight .vb.tl.up.go{background:#3cff58;transform:scale(1.6);z-index:2;
  box-shadow:0 0 0 1.5px #fff,0 0 9px 4px rgba(60,255,88,.95),0 0 22px 9px rgba(60,255,88,.55)}
body .tlight .vb.tl.mid.warn{background:#ffc300;transform:scale(1.6);z-index:2;
  box-shadow:0 0 0 1.5px #fff,0 0 9px 4px rgba(255,195,0,.95),0 0 22px 9px rgba(255,195,0,.5)}
body .tlight .vb.tl.go::before,body .tlight .vb.tl.warn::before,body .tlight .vb.tl.refused::before{display:none}
/* очень срочно: огонёк прямо на зелёной лампе */
body .tlight .vb.tl.up.hot::after{content:"🔥";position:absolute;left:50%;top:50%;transform:translate(-50%,-62%);
  font-size:12px;line-height:1;filter:drop-shadow(0 0 1px rgba(0,0,0,.5));pointer-events:none}
/* обязательно по закону */
.lawstar{margin:0;padding:0 3px 0 1px;font-weight:700;font-size:19px;line-height:0;
  position:relative;top:-.06em;color:#d42a1f;cursor:pointer}
.lawstar:not(.on){color:#9fab98;opacity:.45}
.lawstar:not(.on):hover{color:#d42a1f;opacity:.6}
h1 .lawstar{font-size:30px;top:-.04em}
span.legal{color:#d42a1f;font-weight:700;font-size:18px;line-height:0;position:relative;top:0;margin-right:1px}
.chip.t-proprete,.ic.t-proprete,.tagbtn.t-proprete .ic,body.cs .tagbtn.t-proprete .ic{color:#2f9cc0}
.chip.t-beaute,.ic.t-beaute,.tagbtn.t-beaute .ic,body.cs .tagbtn.t-beaute .ic{color:#e2507c}
.chip.t-ressources,.ic.t-ressources,.tagbtn.t-ressources .ic,body.cs .tagbtn.t-ressources .ic{color:#c48a12}
.chip.t-securite,.ic.t-securite,.tagbtn.t-securite .ic,body.cs .tagbtn.t-securite .ic{color:#e8590c}body.cs .tagbtn.t-dev .ic{color:#3f7f8c}body.cs .tagbtn.t-paper .ic{color:#9a7b4f}body.cs .tagbtn.t-users .ic{color:#f2c200}body.cs .tagbtn.t-houses .ic{color:#4f7a5a}body.cs .tagbtn.t-contractors .ic{color:#e6b000}
.chip.t-sante,.ic.t-sante,.tagbtn.t-sante .ic,body.cs .tagbtn.t-sante .ic{color:#e0301e}
.chip.t-batiment,.ic.t-batiment,.tagbtn.t-batiment .ic,body.cs .tagbtn.t-batiment .ic{color:#7a6a52}
.tagbtn[class*=" t-"]{color:var(--ink)}
/* всё про «сначала надо закончить» в окне правки одним блоком */
.depbox{border:1px solid var(--gold-line);background:#f6faf3;border-radius:12px;padding:10px 12px 12px;margin:4px 0 12px}
.depbox label.dtitle{font-size:13px;font-weight:700;color:var(--gold-ink);margin-bottom:4px}
.depbox .deplist{background:var(--card)}
/* зелёный свет вручную там же: всё про «можно ли начинать» одним блоком */
.depbox label.gorow{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:13px;font-weight:600;color:var(--gold-ink);
  text-transform:none;letter-spacing:0;cursor:pointer}
.depbox .gorow input{width:auto;margin:0;flex:none}
/* ответственные в окне правки одним блоком, имена коротко */
/* всё, что одна настройка (надзадача, категории, ответственные), одним блоком в рамке с заголовком */
.setbox{border:1px solid var(--gold-line);background:#f6faf3;border-radius:12px;padding:10px 12px 12px;margin:4px 0 12px}
.checks.setbox{gap:10px 18px}
.setbox .tl,.setbox label.dtitle{flex-basis:100%;font-size:13px;font-weight:700;color:var(--gold-ink);text-transform:none;letter-spacing:0}
.f.setbox{gap:6px;margin:0 0 2px}
#tagrow.setbox .tl{color:var(--gold-ink);font-size:13px;font-weight:700}   /* старое правило #tagrow .tl было сильнее */
/* мнения словами под светофором на странице дела: кто за, кто с оговоркой, кто против, кто молчит */
.avis{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 20px;margin:12px 0 4px;font-size:13.5px}
.avis .avrow{display:inline-flex;align-items:baseline;gap:6px}
.avis .avrow b{font-weight:600}
.avis .dot{width:10px;height:10px;border-radius:50%;flex:none;align-self:flex-start;margin-top:.36em}
.avis .vp .dot{background:#3fae4f} .avis .vm .dot{background:#e4b100} .avis .vn .dot{background:#c7533f}
.avis .avrow.nobody .avn,.avis .v0 b,.avis .v0 .avn{color:var(--dim)}
.avis .v0 .dot{background:none;box-shadow:inset 0 0 0 1.5px var(--dim)}
.avis .avrow.v0.nobody{display:none}
.avis .avst{flex-basis:100%;font-weight:700}
.avis .avst:empty{display:none}
.avis .avst.go{color:#2e7d32} .avis .avst.warn{color:#8a6a00} .avis .avst.refused{color:#b3261e}
.avis .avhint{flex-basis:100%;color:var(--dim);font-size:12.5px}
body.ro .avis .avhint{display:none}
@media (max-width:640px){.avis .avrow{flex-basis:100%}}
/* телефон: у подзадачи название отдельной строкой над значками, иначе значки сжимали его до нуля (слово на строку) */
@media (max-width:640px){body .subl li.sub{flex-wrap:wrap;row-gap:4px}body .subl li.sub>.sti{flex:1 1 100%}body .subl li.sub>.sright{margin-left:0}}
/* окно правки: звёздочка сразу после названия, не среди категорий */
.titlerow{display:flex;align-items:center;gap:2px}
.titlerow input{flex:1 1 auto;min-width:0}
.dlgstar{font-size:28px;top:.12em;padding:0 2px 0 6px}
.hotflag{font-size:13px;line-height:0;position:relative;top:-.04em;padding:0 2px;cursor:pointer;
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.hotflag:not(.on){filter:grayscale(1);opacity:.3}
.hotflag:not(.on):hover{filter:none;opacity:.65}
h1 .hotflag{font-size:22px}
.dlghot{font-size:20px;padding:0 2px 0 2px}
/* ссылки из заметок под полем: в самом поле по ним не щёлкнуть */
.nlinks{display:flex;flex-direction:column;gap:3px;margin-top:6px}
.nlinks a{font-size:13px;color:var(--gold-ink);text-decoration:underline;overflow-wrap:anywhere;width:fit-content}
.ico.emo{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.chip.tag .ico.emo{font-size:17px}
/* окно правки: «сначала надо закончить» */
.deplist label{justify-content:flex-start;text-align:left;width:100%;align-items:center;padding:3px 4px;border-radius:6px;cursor:pointer}
.deplist label:hover{background:var(--sub-bg)}
.deplist label.on{background:var(--gold-bg);font-weight:600}
.deplist input[type=checkbox],.deplist input[type=radio]{width:auto;flex:none;margin:0;padding:0}
.depsel{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.depsel .dchip{display:inline-flex;align-items:center;gap:6px;background:var(--gold-bg);border:1px solid var(--gold-line);color:var(--gold-ink);
  border-radius:999px;padding:3px 6px 3px 11px;font-size:13px;font-weight:600}
.depsel .dchip button{border:0;background:none;color:inherit;font-size:15px;line-height:1;cursor:pointer;padding:0 3px}
.depsel .dnone{color:var(--faint);font-size:13px}
/* обсуждение дела */
.chat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px 14px;margin:14px 0;max-width:760px}
/* пузыри: чужие слева с лицом, свои справа зелёные; реакции и «ответить» под пузырём */
.msg .bubble{display:inline-block;max-width:100%;box-sizing:border-box;background:#f2f4ef;border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:7px 11px}
.msg.mine{flex-direction:row-reverse}
.msg.mine>.av{display:none}
.msg.mine .mbody{display:flex;flex-direction:column;align-items:flex-end}
.msg.mine .bubble{background:#dcefd6;border-color:#c3dfbb;border-radius:14px 14px 4px 14px}
.msg.flash .bubble{box-shadow:0 0 0 3px #f2d36b}
.mquote{display:block;border-left:3px solid #8db487;background:rgba(255,255,255,.65);border-radius:6px;padding:3px 8px;margin:0 0 6px;font-size:13px;color:var(--dim);text-decoration:none}
.mquote b{color:var(--ink);font-weight:600;margin-right:5px}
.mreact{display:flex;align-items:center;flex-wrap:wrap;gap:2px;margin-top:2px}
.mre.ro{cursor:default}
.mrpick{display:inline-block;position:relative}.mrpick>summary{list-style:none;display:inline-block}.mrpick>summary::-webkit-details-marker{display:none}.mrall{position:absolute;z-index:20;bottom:26px;left:0;display:flex;flex-wrap:wrap;gap:2px;width:260px;background:#fff;border:1px solid var(--line2);border-radius:12px;padding:6px;box-shadow:0 4px 14px rgba(0,0,0,.12)}.mrall .mre{opacity:1}.mrsum{cursor:pointer;border:1px solid transparent;border-radius:999px;padding:0 6px;font-size:13px;line-height:22px;opacity:.4}.mrsum:hover{opacity:1;border-color:var(--line2)}body.ro .mrpick{display:none}.msgbox .mltab{border-collapse:collapse;font-size:13px;margin:4px 0}.msgbox .mltab td{padding:3px 8px 3px 0}.msgbox .mladd{display:flex;flex-wrap:wrap;gap:6px}.msgbox .mladd input,.msgbox .mladd select{font:inherit;padding:4px 8px;border:1px solid var(--line2);border-radius:8px;min-width:0}
.msgviab{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:13px;color:var(--dim);margin:0 0 6px}.msgvia select{font:inherit;padding:3px 6px;border:1px solid var(--line2);border-radius:8px;margin-left:4px;max-width:100%}.msghint a{color:inherit}
.mext{font-size:12px;margin:3px 2px 0;color:var(--dim)}.mext.ok{color:#2e7d32}.mext.err{color:#b3261e}
.mre{border:1px solid transparent;background:none;border-radius:999px;padding:0 6px;font:inherit;font-size:13px;line-height:22px;cursor:pointer;opacity:.4}
.mre:hover{opacity:1;border-color:var(--line2)}
.mre.has{opacity:1;border-color:var(--line2);background:#fff}
.mre.on{border-color:#6da866;background:#e2f1dd}
.mre b{font-size:13px;font-weight:600;color:var(--dim);margin-left:3px}
.mreply{border:0;background:none;font:inherit;font-size:13px;color:var(--faint);cursor:pointer;margin-left:6px;padding:0 4px}
.mreply:hover{color:var(--ink)}
.replybar{display:flex;align-items:center;gap:8px;background:#f2f4ef;border-left:3px solid #8db487;border-radius:6px;padding:5px 8px;font-size:13px;color:var(--dim)}
.replybar[hidden]{display:none}
.replybar b{color:var(--ink);font-weight:600;margin-right:4px}
.replybar .rx{margin-left:auto;border:0;background:none;cursor:pointer;font-size:14px;color:var(--faint)}
body.ro .mre,body.ro .mreply{pointer-events:none}
body.ro .mreply,body.ro .mre:not(.has){display:none}
/* фото и документы дела */
.docs{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px 14px;margin:14px 0}
.docs h2{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin:0 0 10px;display:flex;align-items:center;gap:7px}
.docs h2 .ico{width:16px;height:16px}
.dgrid{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 10px}
.dgrid:empty{display:none}
.ditem{width:112px;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);font-size:13px;position:relative}
.ditem .dthumb{width:112px;height:112px;box-sizing:border-box;border-radius:9px;border:1px solid var(--line2);background:#f2f4ef;object-fit:cover;display:flex;align-items:center;justify-content:center}
.ditem .dicon .ico{width:28px;height:28px;opacity:.5}
.ditem .dname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ditem .ddel{position:absolute;top:4px;right:4px;border:0;border-radius:999px;background:rgba(255,255,255,.9);font-size:12px;padding:1px 6px;cursor:pointer;color:#8a3b30;display:none}
.ditem:hover .ddel,.ditem:focus-within .ddel{display:block}
.dvtog{display:inline-flex;vertical-align:middle;margin-left:12px;font-weight:400}.dvtog button{border:1px solid var(--line2,#cbd5c4);background:transparent;padding:2px 9px;font-size:15px;line-height:1.25;cursor:pointer;color:var(--dim,#5c6655)}.dvtog button:first-child{border-radius:7px 0 0 7px}.dvtog button:last-child{border-radius:0 7px 7px 0;border-left:0}.dvtog button.on{background:var(--gold-bg,#eef5ea);color:var(--ink,#222);font-weight:700}body[data-dv=rows] .dgrid{flex-direction:column;gap:0}body[data-dv=rows] .ditem{width:auto;flex-direction:row;align-items:center;gap:12px;padding:5px 6px;border-top:1px solid var(--line,#e3e3e3)}body[data-dv=rows] .ditem .dthumb{width:40px;height:40px;flex:none;border-radius:6px}body[data-dv=rows] .ditem .dname{white-space:normal;flex:1;font-size:14.5px}body[data-dv=rows] .ditem .dren{bottom:auto;top:6px;left:auto;right:36px}
#lbx{position:fixed;inset:0;z-index:90;background:rgba(12,14,13,.97);user-select:none;-webkit-user-select:none;display:grid;grid-template-columns:56px 1fr 56px;grid-template-rows:auto 1fr}
#lbx[hidden]{display:none}
#lbx .lbhead{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding:8px 14px;color:#eee;font-size:14px}
#lbx .lbname{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#lbx .lbn{color:#aaa}
#lbx .lbopen{margin-left:auto;color:#fff;background:#3f7a45;border:1px solid #8fc394;border-radius:8px;padding:5px 12px;font-weight:600;text-decoration:none}#lbx .lbopen:hover{background:#4c9354}#lbx .lbx{background:none;border:0;color:#fff;font-size:22px;cursor:pointer}
#lbx .lbprev,#lbx .lbnext{background:none;border:0;color:#fff;font-size:54px;cursor:pointer;opacity:.75}#lbx .lbprev:hover,#lbx .lbnext:hover{opacity:1}
#lbx .lbprev[hidden],#lbx .lbnext[hidden]{visibility:hidden;display:block}
#lbx .lbbody{display:flex;min-height:0;padding:0 0 12px;overflow:auto}
#lbx .lbbody img{margin:auto;max-width:100%;max-height:100%;object-fit:contain;-webkit-user-drag:none;cursor:zoom-in}#lbx.zoomed .lbbody img{max-width:none;max-height:none;width:auto;height:auto;cursor:zoom-out}#lbx .lbhint{color:#aaa;font-size:12.5px}
#lbx.doc:not(.fitall) .lbbody img{width:min(100%,1000px);height:auto;flex:none;align-self:flex-start;max-width:none;max-height:none;margin:0 auto;cursor:zoom-out}#lbx.doc.fitall .lbbody img{cursor:zoom-in}
#lbx .lbopen[hidden]{display:none}#lbx .lbopen[hidden]+.lbx{margin-left:auto}
#lbx ::selection{background:transparent}
#lbx button:focus{outline:none}
#lbx .lberr{color:#eee;text-align:center;padding:24px;font-size:16px}
#lbx .lbbody iframe{width:100%;height:100%;border:0;background:#fff;border-radius:4px}
body.lbon{overflow:hidden}
@media (max-width:700px){#lbx{grid-template-columns:34px 1fr 34px}#lbx .lbprev,#lbx .lbnext{font-size:36px}}
.ditem .dren{position:absolute;bottom:34px;left:4px;border:0;border-radius:999px;background:rgba(255,255,255,.92);font-size:12px;padding:1px 6px;cursor:pointer;color:#35613a;display:none}
.ditem:hover .dren,.ditem:focus-within .dren{display:block}
body.ro .ditem .dren{display:none!important}
.docs .dadd{cursor:pointer}
.docs .dnone{margin:0 0 10px}
body.ro .docs .dadd,body.ro .ditem .ddel{display:none!important}
/* перетаскивание файлов дела (Аня 18.09): поднятая карточка и полоска на месте вставки */
.docs[data-sort] .ditem[draggable=true]{cursor:grab}
.docs[data-sort] .ditem[draggable=true]:active{cursor:grabbing}
.ditem.dlift{opacity:.35;transform:scale(.94);transition:transform .12s}
.ditem.dbefore::before,.ditem.dafter::after{content:"";position:absolute;top:0;height:112px;width:4px;border-radius:2px;background:var(--accent,#35613a);z-index:3}
.ditem.dbefore::before{left:-7px}
.ditem.dafter::after{right:-7px}
.dhint{margin:-2px 0 8px;font-size:13px;color:var(--dim)}
/* внутри дела у совета: только заметки; остальное окна правки в виде разработчика */
body.simple .tpanel>:not(.notesrow):not(.docs):not(.acts):not(.subnotes):not(.unotes){display:none!important}
.thead{position:relative}
/* corbeille «Supprimer cette tâche» : plus de bouton texte rouge isolé en haut à droite, elle est
   maintenant une icône dans le groupe .unacts à côté de «Partager» (Аня 18.09) */
body.simple .tpanel .acts .btn.del{background:none;border:0;box-shadow:none;color:#b3261e;font-size:13px;font-weight:500;padding:2px 0}
body.simple .tpanel .acts .btn.del:hover{text-decoration:underline}
.tpanel .docs{background:none;border:0;border-radius:0;padding:0;margin:8px 0 6px}
.tpanel .docs .dnone{display:none!important}
.tpanel .docs h2{font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink);border-top:1px solid var(--line);padding-top:12px;margin:12px 0 10px}
.tpanel .docs h2 .ico{display:none}
.tpanel .docs .ditem .dname{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.25}
.tpanel .docs .dgrid{margin:0 0 8px}
.tpanel .docs .dadd{background:none;border:0;box-shadow:none;padding:2px 0;color:var(--dim);font-size:13.5px;font-weight:500}
.tpanel .docs .dadd:hover{color:var(--accent);text-decoration:underline}
.subnone{display:flex;justify-content:flex-end;margin:10px 0 8px}
.subblock{border:2px solid #dcdcda;border-radius:16px;background:#f3f3f2;padding:10px 12px 12px;margin:18px 0 14px}
.subblock .subhead{background:none;border:0;padding:2px 4px 0;margin:0 0 10px}
.subblock .grid{margin-bottom:0}
.grid.one,.grid.lst{grid-template-columns:minmax(0,1fr)}.grid{position:relative}.deparr{position:absolute;left:-42px;width:38px;pointer-events:none;overflow:visible;z-index:1}.deparr.on path{opacity:1;stroke-width:1.9;stroke:var(--accent,#6b8f5e)}.deparr.on circle,.deparr.on polygon{opacity:1;fill:var(--accent,#6b8f5e)}.deparr.dim{opacity:.2}.deparr svg{display:block;width:100%;height:100%;overflow:visible}.deparr path{fill:none;stroke:var(--dim,#8a9284);stroke-width:1.3;opacity:.7}.deparr polygon{fill:var(--dim,#8a9284);opacity:.95}.deparr circle{fill:var(--dim,#8a9284);opacity:.7}@media (max-width:900px){.deparr{display:none}}
.cell.fold>header{cursor:pointer;user-select:none}
.cell.fold>header .cellname::before{content:"▾";display:inline-block;width:1.2em;color:#6d7869;font-size:14px}
.cell.fold.wclosed>header .cellname::before{content:"▸"}
.cell.fold.wclosed>ul{display:none}
.cell.fold.wclosed>header{border-bottom:0}
.grid.one>.cell.one>header{display:none}
.grid.one li.t .rank .ri,.grid.one li.t .rank .ru,.grid.one li.t .rank .rh{display:none}
.hprog{display:inline-flex;align-items:center;gap:6px}
.slab.pre{margin:0 3px 0 0;color:var(--dim);font-size:13px}
.tpanel #f_notes{min-height:60px;overflow:hidden;resize:none}
body.simple .tpanel .notesrow label{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--dim)}
.chat h2{font-size:17px;font-weight:700;color:var(--ink);margin:0 0 8px;line-height:1.3;display:flex;align-items:center;gap:7px}
/* заголовки одного уровня одним шрифтом: Sous-tâches, Notes, Discussion (Аня 17.09) */
body.simple .chat h2,body.simple .tpanel .notesrow>.f>label{font-size:17px!important;font-weight:700;letter-spacing:0!important;text-transform:none!important;color:var(--ink)!important;line-height:1.3;margin:0 0 8px}
body.simple .chat h2>.ico{display:none}
body.dev .tpanel .row:has(#f_urgency){display:none!important}   /* срочность, важность и срок в виде разработчика не нужны: место дела задаёт матрица, срок уже в шапке (Аня 19.09) */
.chat h2>.ico{display:none}
.msgs{display:flex;flex-direction:column;gap:12px;margin:0 0 12px}
.msg{display:flex;gap:10px;align-items:flex-start}
.msg>.av{width:34px;height:34px;font-size:13px;flex:none}
.medited{margin-left:6px;font-style:italic}
.macts{margin-left:8px;white-space:nowrap;display:inline-flex;align-items:center;gap:2px}   /* кнопки .mact вида .uiact (27.09) */
.msg.mgone .mhead b{color:var(--faint)}
.mgonetxt{font-size:13px;font-style:italic;color:var(--faint)}
.medit-on .mtext,.medit-on .macts{display:none}
.meditbox{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.meditbox textarea{width:100%;min-height:70px;resize:vertical;font:inherit;font-size:14px;border:1px solid var(--line2);border-radius:8px;
  padding:8px 10px;background:var(--card);color:var(--ink);box-sizing:border-box}
.meditbox .chatacts{justify-content:flex-end}
.mbody{min-width:0;flex:0 1 auto;max-width:84%}
.mhead{font-size:13px;color:var(--faint)}
.mhead b{color:var(--ink);font-weight:600;font-size:13px;margin-right:6px}
/* сообщение скопировано из другого источника (почта, WhatsApp...): подпись сверху, всегда видна (Аня 18.09) */
.msrc{font-size:12px;line-height:1.4;color:#4f574a;margin:0 0 6px;padding-bottom:4px;border-bottom:1px dashed var(--line2)}
.msrc .msi{font-size:13px;margin-right:4px}
.mtext{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}
.mfiles{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.mfiles img{max-width:200px;max-height:150px;border-radius:8px;border:1px solid var(--line2);display:block}
.mfile{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line2);border-radius:8px;padding:5px 10px;font-size:13px;
  color:var(--ink);text-decoration:none;background:var(--sub-bg)}
.mfile img{width:34px;height:44px;object-fit:cover;border-radius:3px;max-width:none;max-height:none}
.mfile small{color:var(--faint)}
.nfile{display:flex;flex-direction:column;gap:3px}
.indocs{font-size:13px;color:var(--dim);display:flex;gap:4px;align-items:center;cursor:pointer}
body.ro .indocs{display:none}
.mfiles a.mdoc{display:flex;flex-direction:column;gap:3px;width:112px;text-decoration:none;color:var(--ink);font-size:12px}
.mfiles a.mdoc img{width:112px;height:150px;object-fit:cover;object-position:top;background:#fff}
.mfiles a.mdoc span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.msg.cr .mbody{background:var(--gold-bg);border:1px solid var(--gold-line);border-radius:10px;padding:8px 12px}
.crh{display:block;font-weight:700;color:var(--gold-ink);margin:2px 0 3px}
.nochat{color:var(--faint);font-size:13px;margin:0}
.mold>summary{cursor:pointer;color:var(--dim);font-size:13px;list-style:none;margin:0 0 12px}.mold>summary::-webkit-details-marker{display:none}.mold>summary::before{content:"▸ "}.mold[open]>summary::before{content:"▾ "}.mold[open]{display:flex;flex-direction:column;gap:12px}
.mtgnew{text-align:right}.mtgnew .prepform{text-align:left}   /* «+ новый протокол» справа, без красной линии (Аня 20.09) */
.mnew{display:flex;align-items:center;gap:8px;color:#b3261e;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;scroll-margin-top:80px}.mnew::before,.mnew::after{content:"";flex:1;border-top:1px solid #e8b4ae}
.chatform{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.chatform textarea{width:100%;min-height:70px;resize:vertical;font:inherit;font-size:14px;border:1px solid var(--line2);border-radius:8px;
  padding:8px 10px;background:var(--card);color:var(--ink);box-sizing:border-box}
.chatacts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chatacts .send{margin-left:auto}
.chatacts .clip{cursor:pointer}
.unedform .chatacts{flex-wrap:nowrap}.unedform .chatacts>*{flex:none}.unedform .chatacts .clip,.unedform .chatacts .picked-files{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:430px){.unedform .chatacts{flex-wrap:wrap}}   /* форма правки записи: вложение, Vérifier, Annuler, Enregistrer в одну строку (Аня 18.09) */
.picked-files{font-size:13px;color:var(--dim)}
.crdate{display:none;align-items:center;gap:8px;font-size:13px;color:var(--gold-ink)}
.crdate input{font:inherit;padding:4px 6px;border:1px solid var(--line2);border-radius:8px}
.chatform.crmode .crdate{display:flex}
.chatform.crmode textarea{border-color:var(--gold-line);background:#fbfdf9}
.crbtn.on{background:var(--gold-bg);border-color:var(--gold-line);color:var(--gold-ink)}
.crs h2 .crnew{margin-left:auto}
.crlist{display:flex;flex-direction:column;gap:6px;margin:0 0 6px}
.crd{border:1px solid var(--gold-line);border-radius:10px;background:var(--gold-bg)}
.crd>summary{cursor:pointer;list-style:none;padding:9px 14px;display:flex;align-items:center;gap:10px}
.crd>summary::-webkit-details-marker{display:none}
.crd>summary::before{content:"▸";color:var(--gold-ink);transition:transform .15s}
.crd[open]>summary::before{transform:rotate(90deg)}
.crd.anchored{box-shadow:0 0 0 2px var(--accent)}
.crd.crfuture{background:var(--card,#fff)}
.crd.crfuture a.agendabtn{margin-left:0;padding:1px 9px;white-space:nowrap;font-size:13px;line-height:18px;color:var(--dim);text-decoration:none;font-weight:400}
.crd.crfuture a.agendabtn:hover{color:var(--accent)}
.crfuture .agendabtn .ico{width:16px;height:16px;vertical-align:-2px}
@media (max-width:700px){.crfuture .agendabtn{padding:0 6px;line-height:18px}.crfuture .agendabtn .crnlab{display:none}}
.crd .crh{display:inline;margin:0;font-weight:700;color:var(--gold-ink)}
.crd .crnote{color:var(--dim);font-style:normal}
.crd .crmeta{margin:0 0 8px;font-size:13px;color:var(--dim)}   /* auteur + dates : dans le corps deplie, plus dans la ligne repliee (Аня 18.09) */
/* colonnes fixes pour la liste des comptes rendus : le titre peut passer sur deux lignes sans
   deplacer la colonne des icones d'une carte a l'autre (titre / icones, auteur+date dans le corps) (Аня 18.09, reapplique) */
.crlist .crd>summary{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:start;padding-left:28px}   /* ряд значков одной ширины у всех карточек (27.09) */
.crlist .crd>summary::before{position:absolute;left:14px;top:9px}
.crlist .crd .crh{grid-column:1;white-space:normal;overflow-wrap:break-word}
.crlist .crd .unacts{grid-column:2;justify-self:end}
.sharebtn{font:inherit;font-size:13px;background:none;border:0;padding:2px 4px;cursor:pointer;color:var(--dim);flex:none}
.sharebtn:hover{color:var(--accent)}
.sharebtn.done{color:#2e7d32}
.sharebtn.done .ico{display:none}
.sharebtn.done::after{content:"✓";font-weight:700}
.uicopy.mcopy{margin-left:2px}
.uicopy.mcopy:hover{opacity:1}
/* значки действий (Аня 18.09, второе решение): везде только значок, слова в подсказке title/aria-label; 27.09: один ряд ui_actions */
.thead .unacts button,.und[open]>summary .unacts button{display:inline-flex;align-items:center;text-decoration:none}
.und[open]>summary .crh{flex:1 1 0;min-width:0}
/* один ряд действий - один вид (Аня 23.09); 27.09: вид и зазор даёт UI_ACT_CSS, в открытой карточке тот же зазор, значки не прыгают */
a.popi{text-decoration:none;display:flex}
.crbody{padding:10px 16px 14px;border-top:1px solid var(--gold-line);background:#fbfdf9;border-radius:0 0 10px 10px}
.crform{border-top:1px solid var(--line);padding-top:10px}
.crform .crdate{display:flex}
.crform[hidden]{display:none}
.crtopbar{margin:0 0 6px}
.crlist>.crtopbar{margin:0}
/* carte «prochaine réunion» : UNE seule ligne, même gabarit qu'une ligne .crd réelle (bordure 1px pleine,
   rayon 10px, padding 9px 14px 9px 28px, titre gras à gauche, colonne d'actions à droite) mais fond blanc
   opaque à la place du vert (Аня 18.09) ; le formulaire de correction ne s'ouvre qu'en dessous, à la demande.
   La colonne du milieu du site est étroite (375 px à 1100 px d'écran) : les commandes se compactent selon la
   largeur de la carte (container query) : libellés complets > 650 px, bouton agenda en icône > 500 px, «réunion
   annulée» passe dans le formulaire de correction sous 500 px, empilé sous 360 px (comme les vraies lignes). */
.crtopbar{container:crt/inline-size}
.crd.crnext{background:var(--card,#fff);border:1px solid var(--gold-line)}
.crnext .crnrow{position:relative;display:grid;grid-template-columns:minmax(0,1fr);column-gap:6px;align-items:start;padding:9px 14px 9px 28px}
.crnext .crnico{position:absolute;left:12px;top:13px;color:var(--gold-ink);display:flex}
.crnext .crnico svg{width:14px;height:14px}
.crnext .crh{white-space:normal;overflow-wrap:break-word}
.crncol{grid-column:1;min-width:0}
.crnsub{grid-column:1;display:flex;flex-wrap:wrap;gap:2px 12px;align-items:center;font-size:13px;color:var(--dim);margin-top:2px}
.crnext .agendabtn,.crnext .newbtn.crnextmove,.schedexform .crnextcancel{margin-left:0;padding:1px 9px;white-space:nowrap}
.crnext .agendabtn .ico,.crnext .newbtn.crnextmove .ico,.schedexform .crnextcancel .ico{width:16px;height:16px;vertical-align:-2px}
.schedexform .crnextcancel{color:#b3261e;margin-left:auto}
.schedexform .crnextcancel:hover{border-color:#b3261e;color:#b3261e}
.crnext .crnsub .unacts{margin-left:0;gap:2px}
body.cs:not(.collab) .crag .unpen,body.vw .crnext .unpen{display:none}
.crnext .sharebtn.done{color:#2e7d32}
@container crt (min-width:360px){
  .crnext .crnrow{grid-template-columns:minmax(0,1fr) auto}
  .crnsub{grid-column:2;justify-self:end;flex-wrap:nowrap;gap:0 8px;margin:0;white-space:nowrap;min-height:22.84px}
  .crnext .agendabtn,.crnext .newbtn.crnextmove{padding:0 6px;line-height:18px}
  .crnext .agendabtn .crnlab,.crnext .newbtn.crnextmove .crnlab{display:none}
}
@container crt (min-width:500px){
  .crnext .crnrow{column-gap:10px}
  .crnsub{gap:0 12px}
}
@container crt (min-width:650px){
  .crnext .agendabtn,.crnext .newbtn.crnextmove{padding:0 9px}
  .crnext .agendabtn .crnlab,.crnext .newbtn.crnextmove .crnlab{display:inline}
}
/* date+heure cliquables directement sur la carte, pour corriger un jeudi qui bouge sans passer
   par un mini-formulaire caché derrière un bouton séparé (Аня 18.09) */
.crnextdate{font:inherit;font-weight:inherit;color:inherit;background:none;border:0;border-bottom:1px dotted currentColor;
  border-radius:0;padding:0;cursor:pointer}
.crnextdate:hover{border-bottom-style:solid}
.crnexttime{font-size:13px;font-weight:400;color:var(--dim)}
.crh .crnexttime{font-size:inherit;font-weight:inherit;color:inherit}
.crnextskip{background:none;border:0;color:var(--dim);font-size:13px;text-decoration:underline;cursor:pointer;padding:0}
.schedexform{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--line2);padding:8px 14px;width:100%;box-sizing:border-box}
.schedexform[hidden]{display:none}
.schedexform input[type=datetime-local]{font:inherit;padding:4px 6px;border:1px solid var(--line2);border-radius:7px}
body.cs .crnextskip,body.cs .crag .schedexform,body.vw .crnextmove,body.vw .crnextcancel,body.vw .schedexform{display:none!important}
body.cs .crag .crnextdate,body.vw .crnextdate{border-bottom:0;padding:0;cursor:default;pointer-events:none}
/* заметки к собранию (Аня 19.09): карточка следующего собрания раскрывается, слева ▸ как у строк протоколов, число заметок значком на углу */
.crnext .crnrow{cursor:pointer}
.crnext .crnico{display:none}
.crnchev{position:absolute;left:0;top:0;width:34px;height:36px;padding:0 0 0 14px;border:0;background:none;cursor:pointer;color:var(--gold-ink);display:flex;align-items:center;justify-content:flex-start;font:inherit;font-size:14px;line-height:1}
.crnchevi{display:inline-block;transition:transform .15s}
.crnchev[aria-expanded=true] .crnchevi{transform:rotate(90deg)}
.crnbadge{position:absolute;left:24px;top:-9px;min-width:20px;height:20px;box-sizing:border-box;padding:0 5px;border-radius:10px;background:var(--gold-ink);color:#fff;font-size:12px;font-weight:700;line-height:20px;text-align:center}
.crnbadge,.crnbadge[hidden]{display:none!important}
.schedexclear{background:none;border:0;color:var(--dim);font-size:13px;text-decoration:underline;cursor:pointer;padding:0;min-height:32px}
.crnext a.agendabtn{text-decoration:none;color:inherit}
.crprep{border-top:1px solid var(--gold-line);padding:10px 14px 12px;background:#fbfdf9;border-radius:0 0 10px 10px;cursor:auto}
.crprep[hidden]{display:none}
.crprephd{display:flex;align-items:center;gap:10px;margin:0 0 8px}
.crpreptt{flex:1;min-width:0;font-size:15px;font-weight:700;color:var(--ink)}
.preplist{display:flex;flex-direction:column;gap:6px;margin:0 0 8px}
.preplist:empty{display:none}
.preplist .crd>summary{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:start;padding:9px 6px 9px 28px}
.preplist .crd>summary::before{position:absolute;left:14px;top:9px}
.preplist .crd .crh{grid-column:1;white-space:normal;overflow-wrap:break-word}
.preplist .crd .unacts{grid-column:2;grid-row:1;justify-self:end;margin:-5px 0}
.pmeta{grid-column:1;display:flex;align-items:center;gap:6px;margin-top:2px;font-size:13px;color:var(--dim)}
.pmeta .av,.pnhead .av{width:20px;height:20px;font-size:9px;flex:none}
.prepnone{margin:0 0 8px}
.prepnone[hidden]{display:none}
.prepform{border-top:0;padding-top:4px}
.prepform[hidden]{display:none}
.prepform input[name=title]{width:100%;box-sizing:border-box;font:inherit;padding:7px 10px;border:1px solid var(--line2);border-radius:8px;margin:0 0 6px}
#crs .preplist .unedform textarea{height:auto;min-height:150px;max-height:50vh}
.pnadd{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;margin:0 0 8px}
.pnadd>.crmeta{flex:1;min-width:0;margin:0}
.pnadd>.prepform{flex:0 0 100%}
.pnsec{margin:12px 0 0;border-top:1px dashed var(--gold-line);padding-top:6px}
.pnsec>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;min-height:32px;font-size:14px;font-weight:700;color:var(--gold-ink)}
.pnsec>summary::-webkit-details-marker{display:none}
.pnsec>summary::before{content:"▸";transition:transform .15s}
.pnsec[open]>summary::before{transform:rotate(90deg)}
.pnitem{border:1px solid var(--gold-line);border-radius:8px;background:var(--gold-bg);padding:8px 12px;margin:6px 0}
.pnhead{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--dim);margin:0 0 4px}
.pnttl{font-weight:600;font-size:14px;color:var(--ink);margin:0 0 4px}
/* заметка тише собрания: белая, тоньше и мельче, чтобы не путать с заголовком собрания (Аня 20.09) */
.crd.pnote{background:var(--card,#fff);border-color:var(--line2,#dcdcdc);border-radius:8px}
.crd.pnote>summary::before{color:var(--dim)}
.crd.pnote .crh{font-weight:500;font-size:14px;color:var(--ink)}
.pnsec>summary{font-weight:600}
.pnitem .mtext{font-size:14px}
.und.editing .pnsec{display:none}
body.ro .prepnew{display:none}
@container crt (max-width:300px){
  .crprep{padding:10px 10px 12px}
  .preplist .crd>summary{grid-template-columns:minmax(0,1fr)}
  .preplist .crd .unacts{grid-column:1;grid-row:auto;justify-self:start;margin:0 0 0 -8px}
  .pmeta{grid-row:auto}
}
/* светофор: пока не проголосовала, лампы тёмные, как выключенные; своё мнение яркое, с белым ободком и свечением */
body .tlight .vb.tl.up:not(.go){background:#66806b}
body .tlight .vb.tl.mid:not(.warn){background:#8b8058}
body .tlight .vb.tl.down{background:#89645e}
body .tlight .vb.tl:not(.mine):not(.go):not(.warn):not(.refused){box-shadow:inset 0 1px 3px rgba(0,0,0,.5)}
body .tlight .vb.tl.up.mine:not(.go){background:#3be05a;box-shadow:0 0 0 1.5px #fff,0 0 7px 2px rgba(59,224,90,.85)}
body .tlight .vb.tl.mid.mine:not(.warn){background:#ffcc1a;box-shadow:0 0 0 1.5px #fff,0 0 7px 2px rgba(255,204,26,.85)}
body .tlight .vb.tl.down.mine{background:#ff3b2f;box-shadow:0 0 0 1.5px #fff,0 0 7px 2px rgba(255,59,47,.85)}
/* своё мнение: лампа остаётся тёмной, вокруг цветной ободок; горит только общее решение */
body .tlight .vb.tl.up.mine:not(.go){background:#66806b;box-shadow:0 0 0 3px #3be05a}
body .tlight .vb.tl.mid.mine:not(.warn){background:#8b8058;box-shadow:0 0 0 2px #ffcc1a}
body .tlight .vb.tl.down.mine{background:#89645e;box-shadow:0 0 0 2px #ff3b2f}
body .tlight .vb.tl.mine:not(.go):not(.warn) .vn{color:#fff;text-shadow:0 0 2px rgba(0,0,0,.8)}
body .tlight .vb.tl.mine::before{display:none}
body .tlight .vb.tl.up.mine.go{box-shadow:0 0 0 2px #1f6b2c,0 0 9px 4px rgba(60,255,88,.95),0 0 22px 9px rgba(60,255,88,.55)}
body .tlight .vb.tl.mid.mine.warn{box-shadow:0 0 0 2px #8a5d00,0 0 9px 4px rgba(255,195,0,.95),0 0 22px 9px rgba(255,195,0,.5)}
/* общее собрание отклонило: красная лампа горит для всех, крупно, с ореолом */
body .tlight .vb.tl.down.refused,body .tlight .vb.tl.down.mine.refused{background:#ff3b2f;transform:scale(1.6);z-index:2;box-shadow:0 0 0 1.5px #fff,0 0 9px 4px rgba(255,59,47,.95),0 0 22px 9px rgba(255,59,47,.5)}
body .tlight .vb.tl.refused .vn{font-size:6px;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.6)}
.chatc{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:700;color:var(--faint);text-decoration:none;margin-left:6px;vertical-align:1px}
.chatc .ico{width:16px;height:16px;vertical-align:0}
.chatc.new{color:#fff;background:var(--accent);border-radius:999px;padding:1px 7px 1px 5px}
/* перевод: оригинал спрятан рядом, «ориг.» / «оригинал» показывает его на месте */
.tro{display:none}
.orig>.tro{display:revert}
.orig>.trt{display:none}
.trl{font-size:12px;font-weight:400;color:var(--dim);margin-left:5px;cursor:pointer;white-space:nowrap;text-decoration:underline dotted;text-underline-offset:2px;letter-spacing:0;text-transform:none}
.trl:hover{color:var(--ink,inherit)}
.trl .l2,.trl.orig .l1{display:none}
.trl.orig .l2{display:inline}
.trb+.trl{display:inline-block;margin:2px 0 8px;font-size:12px}
/* у названий короткая метка языка оригинала: FR - показать по-французски, после щелчка RU - вернуть перевод */
.trl.s{font-size:12px;font-weight:700;letter-spacing:.4px;text-decoration:none;border:1px solid #c9c9c6;border-radius:4px;padding:0 3px;line-height:14px;vertical-align:2px;color:#777}
.trl.s:hover{border-color:#8a8a88;color:#333}
.editing>.trl{display:none}
h1 .trl{font-size:12px;vertical-align:middle}
/* сводные заметки по нескольким делам (Аня 17.09) */
.syn.tf-hide{display:none}   /* фильтр «à voir avec» на /synth (Аня 18.09) */
/* страница одной сводной заметки /synth/<mid>: та же постройка, что у страницы дела - шапка .thead и две колонки .nd2 (Аня 18.09) */
.synlistrow{font-size:15px;cursor:pointer}
.synlistrow .crh{display:block;margin:0;line-height:1.35;font-weight:700;color:var(--gold-ink)}
.synlistrow:hover .crh{text-decoration:underline}
.synppl{display:inline-flex;align-items:center;flex:none;margin-left:auto;padding-left:8px}
.synppl .av{width:26px;height:26px;font-size:11px;border:2px solid var(--gold-bg);box-sizing:border-box;margin:0 0 0 -6px}
.synppl .av:first-child{margin-left:0}
.synpanel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px 10px;margin:0 0 14px}
.nd2 .ndl>.synpanel{margin-top:0}
.synpanel{position:relative}
.synhead .ttitle{flex-wrap:nowrap;align-items:flex-start}
.synhead .ttitle h1{flex:1 1 0;min-width:0;overflow-wrap:anywhere}
.synhead .ttitle .unacts{flex:none;margin-top:4px}
.synhead .crmeta{margin:2px 0 0;font-size:12.5px;color:var(--dim)}
.thead .tchips.synextline{margin:8px 0 0}
.synpanel .unview{white-space:pre-wrap;font-size:14px;line-height:1.5}
.synpanel>.subnotes{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.synpanel>.subnotes:first-child{border-top:0;margin-top:0;padding-top:0}
.synpanel .docs{background:none;border:0;border-radius:0;padding:0;margin:8px 0 6px}
.synpanel .docs h2{font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink);border-top:1px solid var(--line);padding-top:12px;margin:12px 0 10px}
.synpanel .docs h2 .ico{display:none}
.synpanel>.docs:first-child h2{border-top:0;padding-top:0;margin-top:0}
.synpanel .docs .ditem .dname{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.25}
.synpanel .docs .dgrid{margin:0 0 8px}
.synpage .synedit{margin:0}
.synpage .synform{margin-top:0}
.synpage.synediting .synpanel>.unview,.synpage.synediting .synpanel>.subnotes,.synpage.synediting .synpanel>.docs,.synpage.synediting .syndel{display:none}
.synpage.synediting .synpen,.synpage.synediting .syndelbtn,.synpage.synediting .syntedit{display:none}
.synform .synedcancel{margin-left:auto}
.synform .hint.syntitlehint{margin:-4px 0 0}
.syn .unview{white-space:pre-wrap;font-size:14px;line-height:1.5}
.syn .subnotes{margin-top:10px}
/* partager + modifier + supprimer ensemble, dans <summary>, comme note/protocole (Аня 18.09,
   corrigé le 18.09 : c'était en position:absolute dans le corps, incohérent avec le reste) ;
   .synedit reste un <details> caché dans le corps (le form de modification), déclenché depuis
   les icônes du <summary> en JS (d.open = true), pas par sa propre bascule native */
.syn .synedit>summary{display:none}
/* при правке текст показываем один раз: сам текст и дела прячем, видна только форма */
.syn.editing>.crbody>.nd2>.ndl>.unview,.syn.editing>.crbody>.nd2>.ndl>.subnotes,.syn.editing .syndel{display:none}
/* Discussion справа, как на странице дела (те же .nd2/.ndl/.ndr, тот же брейкпойнт 900px: на узком экране под заметкой) (Аня 18.09) */
.syn .nd2 .ndr>.synchat{margin-top:0}
.syn.editing .synpen,.syn.editing .syndelbtn{display:none}
.syn .synopen{color:inherit;text-decoration:none}
.syn .synopen:hover{text-decoration:underline;color:var(--accent)}
.syn .sngo{margin-left:auto;font-size:13px;white-space:nowrap;text-decoration:none;color:var(--dim)}
.syn .sngo:hover{color:var(--accent);text-decoration:underline}
.synchip{display:inline-block;font-size:13px;border:1px solid var(--line2);border-radius:999px;padding:2px 9px;margin:0 6px 6px 0}
.synedit{margin:0 0 18px}
.synedit>summary{cursor:pointer;font-size:14px;color:var(--accent)}
.synform{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.synform input[name=title],.synform textarea{font:inherit;padding:8px 10px;border:1px solid var(--line2);border-radius:9px;background:var(--bg)}
.synform textarea{min-height:200px;resize:vertical;line-height:1.5}
.synpicker{border:1px solid var(--line2);border-radius:9px;padding:10px}
.synlab{font-size:13px;color:var(--dim);margin-bottom:6px}
.synfilter{font:inherit;width:100%;padding:6px 9px;border:1px solid var(--line2);border-radius:8px;background:var(--bg);margin-bottom:8px}
.synlist{max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:4px}
.synpick{font-size:13.5px;display:flex;gap:8px;align-items:flex-start}
.synpick[hidden]{display:none}
.syndel{margin:0}   /* скрытая форма удаления сводки; корзина в ряду шапки (27.09) */
.synerr{color:var(--hot);font-size:13px}
.synrefs{font-size:13px;color:var(--dim);margin:0 0 10px}
/* «Synthèses : …» sur la page d'une tâche, en clair (Аня 18.09) */
.synrefs{font-size:14px;color:var(--ink);margin:0 0 12px}
.synrefs .synrl{font-weight:700;margin-right:4px}
.synrefs a{color:var(--gold-ink)}
/* note de synthèse : liste des tâches concernées, une ligne simple par tâche + seulement ce qui a été choisi */
.syn .subnotes>h3{margin:0 0 4px}
.syn .synhint{margin:0 0 10px}
.syncase{margin:0 0 8px}
.synrow{display:flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid var(--gold-line);border-radius:10px;background:var(--gold-bg);text-decoration:none;color:var(--gold-ink)}
.synrow:hover{border-color:var(--accent)}
.synrow .crh{flex:1;min-width:0;overflow-wrap:anywhere}
.synrow .sngo{margin-left:auto;flex:none;color:var(--dim);white-space:nowrap}
.synrow:hover .sngo{color:var(--accent)}
.synpkwrap{display:flex;flex-direction:column;gap:8px;margin:6px 0 0 12px;padding-left:12px;border-left:3px solid var(--gold-line)}
.synpicks{margin:0}
.synpicks:empty,.synpicknotes:empty{display:none}
.synpicks .ditem,.synpicks .ditem .dthumb{width:84px}
.synpicks .ditem .dthumb{height:84px}
.synpicknotes{display:flex;flex-direction:column;gap:6px;margin:0}
.synunpick{white-space:nowrap;font:inherit;font-size:12px;line-height:1;background:rgba(255,255,255,.94);border:1px solid var(--line2);color:#8a3b30;border-radius:999px;padding:3px 7px;cursor:pointer}
.ditem .synunpick{position:absolute;top:3px;right:3px}
.synunpick:hover{background:#fff;border-color:#8a3b30}
/* ajouter à la vue d’ensemble : icône de la note / de la vignette, popup de choix, confirmation avec Annuler */
.synadd{font:inherit;line-height:1;background:none;border:0;cursor:pointer;color:var(--dim);padding:3px 6px;border-radius:7px}
.synadd .ico{width:16px;height:16px;vertical-align:-3px}
.synadd:hover{color:var(--accent);background:var(--bg)}
.synadd.on{color:var(--accent)}
.ditem .synadd{position:absolute;top:4px;left:4px;width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.94);border:1px solid var(--line2);box-shadow:0 1px 4px rgba(0,0,0,.15)}
.ditem .synadd:hover{background:#fff}
.ditem .synadd.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.synadd:disabled{opacity:.5;cursor:wait}
#pop .synpophd{font-size:13px;color:var(--dim);padding:2px 8px 4px}
#pop .popi .ico{width:16px;height:16px;flex:none}
#pop .popi.on .ico{color:var(--accent)}
.syntoast{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:12px;max-width:92vw;
  background:var(--card);border:1px solid var(--line2);border-radius:999px;padding:8px 8px 8px 18px;font-size:14px;box-shadow:0 3px 14px rgba(0,0,0,.18)}
.syntoast[hidden]{display:none}
.syntoast button{font:inherit;font-weight:700;font-size:14px;color:var(--accent);background:none;border:1px solid var(--accent);border-radius:999px;padding:4px 14px;cursor:pointer}
.syntoast button:hover{background:var(--accent);color:#fff}

/* fsz-begin: размер текста (Аня 18.09): ползунок 70-140% в меню слева (Аня 19.09: ещё меньше, было от 85), шаг 5%, 100% по умолчанию (отмечено чёрточкой под ползунком). Класс fsz и переменная --fz стоят на <html>
   (их ставит сервер по куке fsz и тот же скрипт в <head> до первой отрисовки, так что вспышки не того размера нет).
   Масштаб - через zoom на body, потому что вся вёрстка в px. Окошко выбора #pop само в обратном масштабе (JS ставит его по
   координатам экрана), а внутри - в прямом; vh/vw не масштабируются, поэтому высота меню и максимальные ширины делятся на --fz.
   Класс fsnarrow (скрипт: ширина окна / масштаб < 1300px): карточки дел в один столбец, иначе колонки значков наезжают на названия */
html{--fz:1}
html.fsz body{zoom:var(--fz)}
@media (min-width:701px){html.fsz body.hasnav>.sidenav{height:calc(100vh / var(--fz))}}
html.fsz #pop{zoom:calc(1 / var(--fz))}
html.fsz #pop>*{zoom:var(--fz)}
html.fsz .syntoast{max-width:calc(92vw / var(--fz))}
html.fsz.fsnarrow .grid{grid-template-columns:minmax(0,1fr)}
html.fssmall input[type=checkbox],html.fssmall input[type=radio]{zoom:calc(1 / var(--fz))}   /* при 85-95% флажки не мельчают */
html.fsz .fszbox .fszrow{zoom:calc(1 / var(--fz))}   /* сам ползунок не растёт под рукой во время перетаскивания */
/* сам блок - .newbtn.big (та же заливка, рамка, тень и шрифт, что у пунктов меню), здесь только раскладка внутри */
.fszbox{display:flex;flex-direction:column;gap:2px;cursor:default}
body .fszbox.newbtn.big{padding-left:12px;padding-right:12px}
body .fszbox.newbtn.big:hover{border-color:var(--gold-line,var(--accent));color:var(--gold-ink,#fff)}
.fszbox .fszl{font:inherit;color:inherit;cursor:default}
.fszbox .fszv{font:inherit;color:inherit;font-variant-numeric:tabular-nums}
.fszbox .fszrow{display:flex;align-items:center;gap:6px;margin-bottom:16px}
.fszbox .fszwrap{position:relative;flex:1 1 auto;min-width:0}
.fszbox .fsztick{position:absolute;top:31px;left:calc(15px + (100% - 30px) * .4286);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;font-size:12px;font-weight:600;line-height:1;color:var(--gold-ink,#3c5f33);pointer-events:none}
.fszbox .fsztick i{width:2px;height:7px;background:#5d7a56;margin-bottom:2px}
.fszbox .fsza{flex:none;line-height:1;font-weight:700;color:var(--gold-ink,#3c5f33)}
.fszbox .fsza.s{font-size:13px}.fszbox .fsza.b{font-size:20px}
input.fszr{-webkit-appearance:none;appearance:none;flex:1 1 auto;min-width:0;width:100%;height:34px;margin:0;padding:0;border:0;background:transparent;cursor:pointer}
input.fszr::-webkit-slider-runnable-track{box-sizing:border-box;height:10px;border-radius:5px;background:var(--gold-line,#b9d2ad);border:1px solid #7f9f78}
input.fszr::-webkit-slider-thumb{-webkit-appearance:none;box-sizing:border-box;width:30px;height:30px;margin-top:-11px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 1px #234a1e,0 2px 5px rgba(0,0,0,.3)}
input.fszr::-moz-range-track{box-sizing:border-box;height:10px;border-radius:5px;background:var(--gold-line,#b9d2ad);border:1px solid #7f9f78}
input.fszr::-moz-range-thumb{box-sizing:border-box;width:30px;height:30px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 1px #234a1e,0 2px 5px rgba(0,0,0,.3)}
input.fszr:focus-visible{outline:3px solid #234a1e;outline-offset:2px;border-radius:8px}
@media (max-width:700px){body.hasnav>.sidenav .newbtn.big.fszbox{flex-basis:100%;width:100%;box-sizing:border-box}.fszbox .fszrow{max-width:none}}
/* fsz-end */

/* fsz2-begin: минимальный размер текста 12px (Аня 18.09, «читаемо для 50-75 лет»); правила из build_matrix.py переопределены здесь */
.cat,.par{font-size:12.5px}
.chip{font-size:12px}
.brmore,.mz,.mp,.mh,.mh .ri,.rank,.bell,.mx,.mx>summary,.mpen,.rh{font-size:12px}
.mi{font-size:12.5px}
.flow{font-size:12px}
:where(input[type=checkbox],input[type=radio]){min-width:16px;min-height:16px}   /* флажки не меньше 16px (были 13px в выборе сводок) */
/* fsz2-end */

/* fsz3-begin: контраст текста не ниже WCAG AA 4.5:1 (Аня 18.09); цвета кружков-аватаров не меняем, буквы на них тёмные */
.av[style*="background"]{color:#14231a}
input::placeholder,textarea::placeholder{color:#666;opacity:1}   /* подсказки в полях: 4.2-4.6 -> 5.3-5.7 : 1 */
/* fsz5-begin: 19.09 контраст второстепенного текста (--dim/--faint были 4.6-5.3:1, стало 6.5-7:1); слайдер и размеры не трогаем */
:root{--dim:#5f584d;--faint:#635b4f}
body.cs,body.tagged{--dim:#4d5747;--faint:#556050}
/* fsz5-end */
/* fsz3-end */
/* fsz4-begin: блок «Taille du texte» меньше и не как кнопка меню: плоский, светлее, но в тех же зелёных тонах (Аня 18.09) */
body .fszbox.newbtn.big{background:rgba(255,255,255,.55);box-shadow:none;border:1px solid var(--gold-line,#b9d2ad);font-weight:500;font-size:12.5px;padding:6px 10px}
body .fszbox.newbtn.big:hover{background:rgba(255,255,255,.55);border-color:var(--gold-line,#b9d2ad);color:inherit}
.fszbox .fszrow{gap:5px;margin-bottom:14px}
.fszbox .fsza.s{font-size:12px}.fszbox .fsza.b{font-size:16px}
input.fszr{height:26px}
input.fszr::-webkit-slider-runnable-track{height:6px;border-radius:3px}
input.fszr::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9px;border-width:2px}
input.fszr::-moz-range-track{height:6px;border-radius:3px}
input.fszr::-moz-range-thumb{width:22px;height:22px;border-width:2px}
.fszbox .fsztick{top:23px;left:calc(11px + (100% - 22px) * .2143);font-size:12px}
/* fsz4-end */
.prbins>summary{display:flex;align-items:baseline;gap:10px}.prbins .prbyr{margin-left:auto;font-size:13px;font-weight:400;color:var(--dim,#5c6655);white-space:nowrap}
.prbins{margin:0 0 8px}table.dtab2.bctab{width:auto;min-width:0;table-layout:auto}.bctab{min-width:380px}.bctab th{text-align:left}.bctab tbody th{font-weight:700;background:#f4f7f2;max-width:230px}table.dtab2.bctab td.bcm{max-width:170px}.bctab .bcn{display:block;font-weight:400;font-size:12.5px;color:var(--dim,#555)}.bctab .bct{font-weight:700}.bctab tr.bcsep th{border-top:2px solid #9a9a96}.bctab tr.bcgrp th{font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#7c7c78;background:#f0f0ed;padding-top:5px;padding-bottom:5px}.bcfoot{margin:8px 2px 2px;font-size:13px;color:var(--dim,#555)}
.agdocs{margin:12px 0 4px;display:flex;flex-direction:column;gap:4px}.agdocs>b{font-size:14px}.agdoc{display:flex;align-items:flex-start;gap:6px;font-size:14px;line-height:1.4;color:var(--gold-ink,#3c5f33);text-decoration:none}.agdoc:hover{text-decoration:underline}.agdoc .ico{width:16px;height:16px;flex:none;margin-top:2px;color:var(--accent,#6a975d)}
/* телефон: привычное меню - полоса сверху, «три чёрточки», панель слева (Аня 19.09) */
.headeraction{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;min-height:44px;padding:0;border:1px solid var(--gold-line,#b9d2ad);border-radius:10px;background:var(--gold-bg,#e1eedb);color:var(--gold-ink,#3c5f33);cursor:pointer;font:inherit;touch-action:manipulation}
.headeraction svg{width:24px;height:24px}.headeraction:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.mtopbar,.mscrim{display:none}
@media (max-width:700px){
.desktopaction{display:none}.mtopactions{display:inline-flex;margin-left:auto;flex:none}.mtopbar .mtitle{min-width:0}
html{scroll-padding-top:64px}   /* Аня 27.09: переход по якорю не прячет верх записи под липкой полосой «Меню» */
.mtopbar{display:flex;position:sticky;top:0;z-index:50;align-items:center;gap:12px;min-height:54px;padding:5px 10px;background:var(--card,#fff);border-bottom:1px solid var(--line2,#cfdcc9)}
.mburger{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--gold-line,#b9d2ad);border-radius:10px;background:var(--gold-bg,#e1eedb);color:var(--gold-ink,#3c5f33);font:inherit;font-weight:700;cursor:pointer}
.mburger svg{width:24px;height:24px}
.mtitle{font-size:17px;font-weight:700;color:var(--ink,#222);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mscrim{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:55}
body.menu-open .mscrim{display:block}
body.menu-open{overflow:hidden}
body.hasnav>.sidenav{position:fixed!important;top:0;left:0;bottom:0;width:84vw!important;max-width:340px;height:auto!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;justify-content:flex-start!important;gap:8px!important;padding:14px 12px!important;margin:0!important;border:0!important;border-right:1px solid var(--line2,#cfdcc9)!important;background:var(--card,#fff);overflow-y:auto;z-index:60;transform:translateX(-108%);transition:transform .2s ease;box-shadow:0 0 26px rgba(0,0,0,.28);box-sizing:border-box}
body.menu-open>.sidenav{transform:none}
body.hasnav>.sidenav .newbtn.big{width:100%!important;box-sizing:border-box;text-align:left}
body.hasnav>.sidenav .sidefoot{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line2,#cfdcc9)}
body.hasnav>.sidenav .sidefoot>.fszbox{flex:1 1 100%}
body.hasnav>.sidenav .sideabout,body.hasnav>.sidenav .sideme{flex:1 1 0!important;width:auto!important;justify-content:center;min-height:36px}
body.hasnav>.sidenav .sidefoot>.devbox{flex:1 1 100%}
}
.prinv{margin-top:5px;font-size:13.5px}.prinv>summary{cursor:pointer;color:var(--gold-ink,#3c5f33);font-weight:600}.prinvl{margin-top:4px;max-height:320px;overflow:auto;background:rgba(255,255,255,.55);border-radius:8px;padding:4px 8px}.prinvr{display:grid;grid-template-columns:82px minmax(0,1fr) auto auto;gap:8px;padding:3px 0;border-bottom:1px solid rgba(0,0,0,.06);line-height:1.35}.prinva{font-variant-numeric:tabular-nums;white-space:nowrap}.eurc{display:none}:hover>.eurr{display:none}:hover>.eurc{display:inline}.prinvr>.uiacts{margin-left:0}.prinvr>.uiacts .prinvdel{display:contents}.prinvr>.exed{grid-column:1/-1;margin:4px 0 6px}.prinvr>.exed[hidden]{display:none}@media (max-width:600px){.prinvr{grid-template-columns:78px 1fr}.prinvr>.uiacts{grid-column:2;justify-self:end}.prinva{grid-column:2}}
.prnew .prform{display:flex;flex-direction:column;gap:8px;margin:8px 0;max-width:560px}.prnew .prform input,.prnew .prform select,.prnew .prform textarea{font:inherit;padding:8px 10px;border:1px solid var(--line,#cfd8cc);border-radius:8px;background:#fff}.prnew .prform textarea{min-height:70px}.prdel.uiact{margin-left:auto}
.prow.pquote{background:#f1f1ef;border-color:#d4d4d0;color:#575757}.prow.pquote .prn{color:#4a4a48}.prow.pquote .prdoc,.prow.pquote .prct a{color:#575757}
.prct{margin-top:4px;font-size:13.5px;line-height:1.4;color:var(--dim,#5c6655);overflow-wrap:anywhere}.prct a{color:var(--gold-ink,#3c5f33)}
.navdot{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;margin-left:8px;border-radius:50%;background:#d93025;color:#fff;font-size:12px;font-weight:800;line-height:1}.pralert{margin:0 0 8px;padding:9px 14px;border:1px solid #f0b429;border-radius:10px;background:#fff3cd;color:#6b4a00;font-weight:600;font-size:15px}
.prdocs{display:flex;flex-direction:column;gap:2px;margin-top:5px}.prdoc{display:flex;align-items:flex-start;gap:6px;font-size:13.5px;line-height:1.4;color:var(--gold-ink,#3c5f33);text-decoration:none}.prdoc:hover{text-decoration:underline}.prdoc .ico{width:16px;height:16px;flex:none;margin-top:2px;color:var(--accent,#6a975d)}
/* низ меню (Аня 19.09): вид как у пунктов меню, но прозрачные и уже */
body.hasnav>.sidenav .sideabout,body.hasnav>.sidenav .sideme{box-sizing:border-box;width:100%;min-height:0;padding:5px 12px;margin:0;background:transparent;border:1px solid var(--gold-line);border-radius:8px;color:var(--gold-ink);font-size:14px;font-weight:600;text-decoration:none}
body.hasnav>.sidenav .sideabout:hover,body.hasnav>.sidenav .sideme:hover{background:rgba(255,255,255,.45);text-decoration:none}
body.hasnav>.sidenav .sideabout[aria-current],body.hasnav>.sidenav .sideme.cur{background:var(--gold-bg)}
body.tagged.hasnav>.sidenav .newbtn.big.fszbox{background:transparent;box-shadow:none;padding:6px 12px}
body.hasnav>.sidenav .sidefoot{gap:6px}
.pgrows{display:flex;flex-direction:column;gap:6px;max-width:1180px}.pgrows .pghint{margin:2px 2px 6px;font-size:13.5px;color:var(--dim)}.pgrows .crd.und{margin:0}.pgrows .crbody{background:#fff;padding:6px 12px 10px}.pgrows .crbody table{background:#fff}
.backbtn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin:0 8px 0 0;border:1px solid var(--line,#ccc);border-radius:50%;color:var(--dim);background:#fff;text-decoration:none;align-self:center}.backbtn .ico{width:16px;height:16px}.backbtn:hover{color:var(--ink);border-color:var(--dim)}
.sidenav .sideme{gap:7px}.sidenav .sideme.cur{font-weight:800;color:var(--ink)}.sidenav .sideme .av{width:20px;height:20px;font-size:9px;flex:none}
/* кнопки форм (заметка, обсуждение, протокол) по возможности в одну строку (Аня 19.09) */
.chatacts{flex-wrap:nowrap}
.chatacts>*{flex:none}
.chatacts .clip,.chatacts .picked-files{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chatacts .btn,.chatacts .newbtn{padding-left:12px;padding-right:12px}
@media (max-width:430px){.chatacts{flex-wrap:wrap}}
/* буквы в меню не мельче, чем на странице (Аня 19.09): размер букв человек выбирает сам ползунком, меню масштабируется вместе со страницей */
@media (min-width:701px){body.hasnav>.sidenav{width:232px}body.hasnav>.wrap{margin-left:256px}}
body.hasnav>.sidenav .newbtn.big{font-size:16px}
body.hasnav>.sidenav .newbtn.big.fszbox{font-size:14px}
body.hasnav>.sidenav .newbtn.big.navsub{margin-left:22px;width:calc(100% - 22px)!important;font-size:14.5px;padding-top:6px;padding-bottom:6px}
body.hasnav>.sidenav input{font-size:15px}
.sidenav .sideabout{font-size:15px}
/* значки категорий на карточках крупнее (Аня 19.09) */
body.tagged .tagcol .tg .chip.tag .ico,body.tagged .sright .tg .chip.tag .ico{width:27px;height:27px}
body.tagged .tagcol .tg .chip.tag .ico.emo,body.tagged .sright .tg .chip.tag .ico.emo{font-size:25px;width:auto;height:auto}
/* Аня 20.09: личные задачи и Сотрудничество выглядят одинаково: колонки справа с тем же отступом, значок категории того же размера. Экстранет (крупный вид для пожилых) не трогаем */
body.collab.tagged li.t>.tagcol,body.collab .sub .sright{grid-template-columns:68px 76px 104px!important;grid-auto-flow:row!important;width:max-content!important;max-width:none!important;justify-content:end!important;justify-items:center;column-gap:12px!important;flex:0 0 auto;margin-left:auto}
body.tagged .tagcol .tg .chip.tag:not(:has(.ico)),body.tagged .sright .tg .chip.tag:not(:has(.ico)){font-size:25px;line-height:1}
/* заголовки блоков доски («Important pour la copro · urgent»…): крупнее и заметнее самих задач (Аня 19.09) */
.cell>header .cellname{font-size:17px!important;font-weight:800!important;letter-spacing:0!important;text-transform:none!important;color:#1f3d1c!important;line-height:1.25}
.cell>header{padding-top:11px;padding-bottom:11px}

/* stack-begin (Аня 18.09, регрессия): название карточки не заходит под колонки справа. Названию всегда остаётся не меньше 180px;
   если места меньше, колонки (Bât., значок категории, ответственный, шкала) переносятся второй строкой под название и
   раскладываются по ширине карточки, как на телефоне. Без порогов и медиазапросов: решает сам перенос строки flex.
   Название растёт в 1000 раз сильнее колонок, поэтому в одну строку колонки остаются своей обычной ширины и не двигаются. */
body.tagged li.t{column-gap:12px}
body.tagged li.t>.body{flex:1000 1 180px;min-width:min(180px,100%)}
body.tagged li.t>.tagcol{flex:1 0 auto;justify-content:space-between}
body li.sub{flex-wrap:wrap;row-gap:2px;column-gap:12px}
body li.sub>.sti{flex:1000 1 180px;min-width:min(180px,100%)}
body.tagged li.t>.body,body li.sub>.sti{overflow-wrap:anywhere}   /* длинное слово (адрес почты) переносится, а не вылезает под колонки */
body li.sub>.sright{flex:1 0 auto;justify-content:space-between}
/* stack-end */

/* undo-begin: плашка «Modifié - Annuler» не сжимается до половины экрана на телефоне и стоит над короткой строкой состояния (Аня 19.09) */
.syntoast{bottom:60px;width:max-content}
/* undo-end */

/* prog2-begin: «Сделано, %» - пять больших делений вместо ползунка (Аня 18.09): каждое деление кнопка 20x28 px, число под ними, ширина колонки прежняя (104px) */
.prog{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:102px}
.prog .pgseg{display:flex;width:100px}
.prog .pgb{flex:none;position:relative;width:20px;height:28px;padding:0;margin:0;border:0;background:none;cursor:pointer;border-radius:5px;-webkit-tap-highlight-color:transparent}
.prog .pgb::before{content:"";position:absolute;left:2px;right:2px;top:7px;bottom:7px;box-sizing:border-box;border:1.5px solid #6f8a68;border-radius:3px;background:#fff}
.prog .pgb.on::before{background:var(--accent);border-color:#4f7a48}
.prog .pgb:hover::before{border-color:#2f5a2a;box-shadow:0 0 0 2px rgba(106,151,93,.25)}
.prog .pgb:focus-visible{outline:3px solid #2f5a2a;outline-offset:-1px}
.prog output{font-size:13px;line-height:1.1;font-weight:700;color:var(--ink);min-width:0;text-align:center;margin-top:-3px}
.prog.p0 output{color:var(--faint);font-weight:600}
body.tagged .prog{width:102px}
/* в шапке дела места хватает: число справа от делений, одной строкой */
body .tchips .prog,body .thead .tchips .prog{flex-direction:row;width:auto;height:30px;gap:8px}
body .tchips .prog output{margin:0}
/* «Déplacer» рядом с карандашом: тот же вид, что у карандаша (32 px под палец), в клетке повторяющихся дел и в полосе напоминаний не нужна */
.tmove{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;box-sizing:border-box;width:32px;height:32px;margin:-9px -4px -9px 0;color:var(--accent);cursor:pointer;border-radius:8px;line-height:0;position:relative;top:-1px}
.tgrp{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:26px;height:26px;color:var(--dim);cursor:pointer;border-radius:8px;line-height:0}
.tgrp .ico{width:16px;height:16px;stroke-width:1.8}
.cell.one li.t>.tagcol{grid-template-columns:repeat(3,76px) 104px}
.cell.one li.t>.tagcol>.slot{justify-self:center}
.tgrp:hover,.tgrp:focus-visible{background:var(--accent);color:#fff;outline:none}
body.ro .tgrp{display:none!important}
li.grph{margin:8px 0 0 0;padding:0;list-style:none}
body .subl li.grph{margin:8px 6px 0 26px}
.grpt{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;text-align:left;font:inherit;font-weight:600;color:var(--ink);background:var(--card);border:1px dashed var(--line2);border-radius:8px;padding:7px 10px;cursor:pointer}
.grpt:hover{border-color:var(--dim)}
.grpt .ico{width:16px;height:16px;color:var(--accent);flex:none}
.grpc{width:12px;color:var(--dim);flex:none}
.grpcount{margin-left:auto;font-weight:600;font-size:12.5px;color:var(--dim);border:1px solid var(--line2);border-radius:999px;padding:1px 9px}
li.ingrp:not(.gopen){display:none!important}
li.grphint{list-style:none;color:var(--dim);font-size:13px;padding:6px 4px 8px}
li.grphint .ico{width:16px;height:16px;vertical-align:-3px}
body .subl li.sub.ingrp{margin-left:52px}
#pop .grpnew{display:flex;gap:6px;margin-top:6px;padding-top:8px;border-top:1px solid var(--line2)}
#pop .grpnew input{flex:1;min-width:0;font:inherit;padding:6px 8px;border:1px solid var(--line2);border-radius:8px;background:var(--card);color:var(--ink)}
#pop .grpnew button{font:inherit;border:0;border-radius:8px;padding:6px 12px;background:var(--accent);color:#fff;cursor:pointer}
.tmove .ico{width:16px;height:16px;stroke-width:2.1}
.tmove:hover,.tmove:focus-visible{background:var(--accent);color:#fff;outline:none}
.recurcell .tmove,.dvfixcell .tmove,.donecell .tmove,.rules .tmove,body.ro .tmove{display:none!important}
/* narrow-begin: в узкой клетке колонки (Bât., значок, ответственный, шкала) не выходят за карточку: та же раскладка, что на телефоне
   (Аня 18.09). Решает ширина самой клетки (container query), а не окна: клетки бывают узкими и при 950-1100px в две колонки */
.cell{container-type:inline-size}
@container (max-width:470px){
  body .sub .sright{grid-template-columns:none!important;grid-auto-flow:column!important;grid-auto-columns:auto!important;justify-content:space-between;column-gap:6px;width:100%;max-width:100%;box-sizing:border-box}
}
@container (max-width:410px){
  body.tagged li.t>.tagcol{grid-template-columns:none!important;grid-auto-flow:column!important;grid-auto-columns:auto!important;justify-content:space-between;column-gap:6px;width:100%;max-width:100%;box-sizing:border-box}
}
/* narrow-end */
/* prog2-end */

/* legend-begin: легенда значков категорий над карточками (Аня 18.09). Одна строка от 1100px, дальше переносится; всегда на виду */
.taglegend{display:flex;flex-wrap:wrap;align-items:center;gap:2px 18px;margin:2px 0 10px;padding:0 6px;font-size:13.5px;line-height:1.5;color:#4b574e}
.taglegend .tl-i{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;min-height:24px}
.taglegend .chip.tag .ico{width:18px;height:18px}
.taglegend .chip.tag .ico.emo{font-size:15px}
.taglegend .tl-n{color:#4b574e}
/* legend-end */

/* sidefoot-begin (Аня 18.09): низ меню слева: тонкая линия, «Taille du texte», затем тихая подпись «À propos» (не кнопка).
   Прижат вниз (margin-top:auto) и при высоком окне остаётся на виду (sticky). Окошко «вид разработчика» стоит поверх левого
   нижнего угла (только у хозяйки), поэтому под него оставлен запас. На телефоне меню лежит сверху строками: там всё идёт подряд, без линии. */
.sidenav .sidefoot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--line);background:var(--card)}
@media (min-width:701px) and (min-height:520px){.sidenav .sidefoot{position:sticky;bottom:0}}   /* Аня 02.10: с закреплёнными делами меню длиннее, низ (À propos) пропадал на окнах ниже 780 px */
.sidenav .sideabout{align-self:stretch;display:flex;align-items:center;min-height:36px;box-sizing:border-box;padding:6px 12px;font-size:14px;line-height:1.3;color:#4b574e;text-decoration:none;border-radius:6px}
.sidenav .sideabout:hover{text-decoration:underline;color:var(--ink)}
.sidenav .sideabout:focus-visible{outline:3px solid var(--accent);outline-offset:-1px}
.sidenav .sideabout[aria-current]{font-weight:800;color:var(--ink)}
@media (max-width:700px){.sidenav .sidefoot{display:contents}.sidenav .sideabout{min-height:32px}}
/* плашка разработчика теперь внутри низа меню: вплотную по ширине к остальным блокам, флажок и пометка одной строкой, переключатель двумя строками подписей */
.sidenav .devbox{margin:0;background:transparent;padding:6px 8px;gap:6px 8px}
.sidenav .devbox .devsw:has(.sw){order:0;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"sw a" "sw b";column-gap:8px;row-gap:1px;align-items:center;white-space:normal;width:100%;line-height:1.25}
.sidenav .devbox .devsw .l0{grid-area:a}.sidenav .devbox .devsw .sw{grid-area:sw}.sidenav .devbox .devsw .l1{grid-area:b}
.sidenav .devbox .langsw{order:1}
.sidenav .devbox .devnote{order:2;flex:1 1 0;min-width:0;line-height:1.25}
.sidenav .devbox .robadge{order:3}
.sidenav .devbox .devlog{order:4;flex:1 1 100%;display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#333;text-decoration:none}
.sidenav .devbox .devpage{order:-1;flex:1 1 100%;box-sizing:border-box;display:flex;align-items:center;min-height:32px;padding:5px 10px;font-size:13px;color:var(--ink,#222);text-decoration:none;background:#fff;border:1px solid var(--line,#cfdcc9);border-radius:6px}
.sidenav .devbox .devpage:hover,.sidenav .devbox .devpage.cur{font-weight:700;border-color:#1f6b2c}
.sidenav .devbox.devfold{display:block;padding:0;background:#fff}
.sidenav a.devbox.devfold{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;box-sizing:border-box;font-size:14px;font-weight:600;color:var(--ink,#222);text-decoration:none}
.sidenav a.devbox.devfold:hover,.sidenav a.devbox.devfold.cur{border-color:#1f6b2c}
body .sidenav a.devbox.devfold{background:#fff!important;border:1px dashed #a9a9a6!important}body .sidenav a.devbox.devfold:hover,body .sidenav a.devbox.devfold.cur{border-color:#1f6b2c!important;box-shadow:none!important}
.sidenav .devlink small{display:block;font-size:11px;font-weight:400;color:#757572;line-height:1.25}
.sidenav .devfold>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;cursor:pointer;list-style:none;font-size:14px;font-weight:600;color:var(--ink,#222)}
.sidenav .devfold>summary::-webkit-details-marker{display:none}
.sidenav .devfold>summary::after{content:"▸";margin-left:auto;color:#757572}
.sidenav .devfold[open]>summary::after{content:"▾"}
.sidenav .devfold>summary small{display:block;font-size:11px;font-weight:400;color:#757572;line-height:1.25}
.sidenav .devfold .devin{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:2px 10px 10px}
.sidenav .devbox .devfold .devpage,.sidenav .devfold .devpage{order:-1;min-height:0;border:0;padding:0;background:none;font-size:13px;color:#1f6b2c;text-decoration:underline}
.sidenav .devbox .devlog svg{width:1.1em;height:1.1em;flex:none}
.sidenav .devbox .devlog:hover,.sidenav .devbox .devlog.cur{color:#1f6b2c;font-weight:700}
/* Аня 20.09: название дома/пространства вверху меню: размером с кнопку, но без рамки и заливки, жирная подпись с чертой снизу, не кнопка */
.sidenav .sidetitle-up{margin:0 8px 0 0}
.sidenav .sidetitle{box-sizing:border-box;display:flex;align-items:center;min-height:36px;padding:6px 10px;margin:0 0 4px;font-size:15px;font-weight:800;line-height:1.25;color:var(--ink,#222);background:#fff3b0;border:1px solid #e9d46b;border-radius:8px;cursor:default;user-select:text}
.sidenav .sidetitle .spgear{margin-left:auto;padding-left:8px;font-size:17px;font-weight:400;text-decoration:none;color:var(--dim,#5c6655)}.sidenav .sidetitle .spgear:hover{color:var(--accent,#3c5f33)}
/* sidefoot-end */

/* fbar-begin: компактная полоса фильтров (Аня 18.09). Закрыта по умолчанию: кнопка «Filtres» со счётчиком + чипы включённых фильтров;
   нажатие раскрывает прежние пять рядов на месте. Логика фильтров не менялась, только подача. */
.filters.fstack{flex-direction:column;align-items:stretch;gap:4px;justify-content:flex-start}
.headrow.fhead{align-items:flex-start}
.headrow.fhead>.uiaddw{align-self:flex-start;margin-top:0}   /* «+» на уровне полосы, а не внизу раскрытых рядов */
.fbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;min-height:42px;box-sizing:border-box;padding:0}   /* без подложки и рамки: подложка только у раскрытых рядов (Аня 19.09) */
body .frows.fclosed{display:none!important}
.ftoggle{display:inline-flex;align-items:center;gap:8px;min-height:38px;box-sizing:border-box;padding:0 12px 0 12px;border:1px solid #7d8a80;border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:15px;font-weight:700;line-height:1;cursor:pointer;white-space:nowrap}
.ftoggle:hover{border-color:var(--accent);background:#f8fbf6}
.ftoggle:focus-visible,.fchip:focus-visible,.fbar-reset:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ftoggle .ico{width:16px;height:16px}
.fcount{min-width:22px;height:22px;box-sizing:border-box;padding:0 6px;border-radius:999px;background:var(--hot);color:#fff;font-size:13px;font-weight:700;line-height:22px;text-align:center}
.fcount[hidden],.fbar-reset[hidden]{display:none}
.fcaret{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);margin-left:2px;flex:none}
.ftoggle[aria-expanded="true"] .fcaret{transform:rotate(-135deg) translate(-2px,-2px)}
.fchips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.fchip{display:inline-flex;align-items:center;gap:6px;min-height:32px;box-sizing:border-box;padding:0 9px 0 10px;border:0;border-radius:999px;background:var(--hot);color:#fff;font:inherit;font-size:14px;font-weight:700;line-height:1;cursor:pointer;white-space:nowrap}
.fchip:hover{filter:brightness(.9)}
.fchip .ico{width:16px;height:16px;color:#fff}
.fchip .av{width:22px;height:22px;font-size:11px;margin:0;border:0}
.fchip .ic{display:inline-flex}
.fchip .fx{width:12px;height:12px;flex:none}
.fbar-reset{border:0;background:none;padding:6px 4px;margin:0;font:inherit;font-size:14px;font-weight:700;color:var(--hot);text-decoration:underline;cursor:pointer}
.fbar-reset:hover{filter:brightness(.85)}
.fbar.fopen .fchips,.fbar.fopen .fbar-reset{display:none}
body .filters.fnobtn>.fbar{display:none}   /* Аня 24.09: на «Моих задачах» кнопки «Фильтры» нет, ряды всегда открыты */
@media (max-width:700px){.headrow.fhead{flex-direction:row;flex-wrap:nowrap;align-items:flex-start;gap:8px}.headrow.fhead>.filters{min-width:0}.headrow.fhead>.uiaddw{margin-top:2px}}
/* fbar-end */

/* muted-begin */
body .frows .tagbar.fgrp,body.tagged .frows .tagbar.fgrp{background:#f3f5f2;border-color:#e1e5df}
body .frows .fgrp .gt,body.tagged .frows .fgrp .gt{color:#5f695f;font-weight:600}
body .frows .fgrp .tagbtn:not(.narrow),body.tagged .frows .fgrp .tagbtn:not(.narrow),body.cs .frows .fgrp .tagbtn.on:not(.narrow),body.tagged .frows .fgrp .tagbtn.on:not(.narrow){color:#626b64!important;font-weight:400}
body .frows .fgrp .tagbtn .tn,body .frows .fgrp .tagbtn.on:not(.narrow) .tn{color:#667068}
body .frows .fgrp .tagbtn:not(.narrow)::before{border-color:#7f8c82}
body.tagged .frows .fgrp .tagbtn.on:not(.narrow)::before,body .frows .fgrp .tagbtn.on:not(.narrow)::before{background:#7d867f;border-color:#7d867f}
.ftoggle{border-color:#8a958c;color:#4a544c;font-weight:600}
.ftoggle:hover{border-color:#5f6e62}
/* legend внутри раскрытой панели, как ещё одна тихая строка */
.frows .taglegend{margin:0;padding:6px 12px 2px}
/* muted-end */

