/* Система (формы, кнопки, карточки, списки, меню, чат, таблицы) вынесена в static/system.css (16.10.2026); здесь раскладка и частности основных страниц. */

/* напоминания на почту: строка «за 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:var(--c-red-40);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:var(--c-red-40);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:var(--bw) solid var(--line2);background:var(--bg);color:var(--accent);
  font:inherit;font-size:14px;line-height:1;padding:3px 7px;border-radius:var(--r)}
.pen:hover{background:var(--accent);color:var(--c-grey-100);border-color:var(--accent)}
.status{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);
  padding:7px 16px;font-size:13px;
  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}
/* совет видит упрощённое окно: без денег, категорий и личных галочек */
body.cs .own{display:none}
/* у совета золотистая палитра вместо зелёной */
/* совет: пастельная тёплая палитра, всё приглушённое и в одной гамме */
body.cs .tagbtn.t-batiment .ic{color:var(--c-yellow-47)}body.cs .tagbtn.t-sante .ic{color:var(--c-red-49)}body.cs .tagbtn.t-proprete .ic{color:var(--c-green-60-2)}body.cs .tagbtn.t-beaute .ic{color:var(--c-red-65)}body.cs .tagbtn.t-conseil .ic{color:var(--c-yellow-64)}body.cs .tagbtn.t-ressources .ic{color:var(--c-blue-52)}body.cs .tagbtn.t-securite .ic{color:var(--c-orange-56)}body.cs .tagbtn.t-dev .ic{color:var(--c-teal-50)}body.cs .tagbtn.t-paper .ic{color:var(--c-yellow-54)}body.cs .tagbtn.t-users .ic{color:var(--c-yellow-80)}body.cs .tagbtn.t-houses .ic{color:var(--c-green-47)}body.cs .tagbtn.t-contractors .ic{color:var(--c-yellow-75)}
body.cs .pbar i{width:26px;height:15px}
body.cs .av{width:26px;height:26px;font-size:12px}
body.cs .chip.who{background:var(--warm-bg);color:var(--c-yellow-47)}

body.cs .pbar i{background:var(--warm-bg);border:var(--bw) solid var(--c-yellow-87);box-sizing:border-box}
body.cs .pbar i.on{background:var(--c-yellow-76);border-color:var(--c-yellow-69);color:var(--c-grey-100)}

body.cs .vb.up.on{background:var(--c-green-96);border-color:var(--c-green-68-2);color:var(--c-green-44)}
body.cs .vb.down.on{background:var(--hot-bg);border-color:var(--c-orange-64);color:var(--c-red-40-2)}body.cs .vb.mid.on{background:var(--warm-bg);border-color:var(--c-yellow-71);color:var(--c-yellow-39)}
body.cs .score.sp{color:var(--c-green-53)} body.cs .score.sn{color:var(--c-red-47-2)}
body.cs .chip.due{color:var(--c-orange-49-2);background:var(--hot-bg)}

 
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:var(--r-round);color:var(--c-grey-100);font-weight:700;
  font-size:12px;width:24px;height:24px;vertical-align:middle;flex:none;letter-spacing:0}
.av-ico{background:var(--card);font-size:12px;border:var(--bw) solid var(--line2);overflow:hidden;box-sizing:border-box}
.av-img{object-fit:cover;background:var(--card);border:var(--bw) 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}

.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}

.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.remind{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:left}

.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}}
/* круглая зелёная «+»: «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}
.newbtn.ics{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:var(--r);font-style:normal;font-size:12px;font-weight:700;color:var(--dim);letter-spacing:-.02em}
.pbar i.on{color:var(--c-grey-100)}
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:var(--r);background:var(--c-grey-31);border:var(--bw) solid var(--c-grey-21);vertical-align:middle;flex:none}
.rlight i{display:block;width:9px;height:9px;border-radius:var(--r-round);font-style:normal}
.rlight.go i{background:var(--c-green-70-3);box-shadow:var(--shadow-s)}
.rlight.wait i{background:var(--c-yellow-76-2);box-shadow:var(--shadow-s)}
body .tchips .rlight{height:22px}
/* светофор лёжа: корпус посветлее, лампы в ряд с козырьками; погасшие видны, но не светятся */
.tlight{display:inline-flex;flex-direction:row;align-items:center;gap:4px;padding:5px 5px 3px;background:var(--c-grey-82);border:var(--bw) solid var(--c-grey-73);border-radius:var(--r);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:var(--r-round);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:var(--r) var(--r) 0 0;background:var(--c-grey-61);pointer-events:none}
body .tlight .vb.tl.up{background:var(--c-green-52-2)}body .tlight .vb.tl.mid{background:var(--c-yellow-64-2)}body .tlight .vb.tl.down{background:var(--c-red-43)}
body .tlight .vb.tl.up.mine{background:var(--c-green-69-2);box-shadow:0 0 4px 1px rgba(52,194,74,.7)}
body .tlight .vb.tl.mid.mine{background:var(--c-yellow-78);box-shadow:0 0 4px 1px rgba(245,184,0,.7)}
body .tlight .vb.tl.down.mine{background:var(--c-red-53);box-shadow:0 0 4px 1px rgba(234,58,46,.7)}
body .tlight .vb.tl.up.go{background:var(--c-green-89-3);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{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:var(--bw) solid var(--c-yellow-77);border-bottom:var(--bw) solid var(--c-yellow-77);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:var(--bw) solid var(--line2);background:var(--bg);color:var(--accent);font:inherit;font-size:14px;line-height:1;padding:3px 7px;border-radius:var(--r);cursor:pointer}
body .sub .mpen:hover{background:var(--accent);color:var(--c-grey-100);border-color:var(--accent)}
body .tchips .vote,.vote{height:auto;gap:5px}
.first{display:block;width:fit-content;font-size:12px;color:var(--c-yellow-38);background:var(--c-yellow-95);border-radius:var(--r);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;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:var(--bw) solid var(--line2)}
.chip.st-doing{background:transparent;color:var(--accent);border:var(--bw) solid var(--accent)}
.chip.st-done{background:var(--gain,var(--c-green-46));color:var(--c-grey-100);border:var(--bw) 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:var(--c-yellow-47)}.t-sante{color:var(--c-red-49)}.t-proprete{color:var(--c-green-60-2)}.t-beaute{color:var(--c-red-65)}.t-conseil{color:var(--c-yellow-64)}.t-ressources{color:var(--c-blue-52)}.t-securite{color:var(--c-orange-56)}.t-dev{color:var(--c-teal-50)}.t-paper{color:var(--c-yellow-54)}.t-users{color:var(--c-yellow-80)}.t-houses{color:var(--c-green-47)}.t-contractors{color:var(--c-yellow-75)}
.tagbtn .ic{display:inline-flex}

/* значки категорий стоят в одной колонке у правого края карточки, перед карандашом */
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:var(--r)}
.ico.faint{color:var(--c-green-69);width:16px;height:16px}
#pop{position:absolute;z-index:30;display:flex;flex-direction:column;gap:2px;min-width:200px}
.popi{display:flex;align-items:center;gap:8px;border:var(--bw) solid transparent;background:none;font:inherit;font-size:13px;padding:4px 8px;border-radius:var(--r);cursor:pointer;text-align:left;color:var(--ink)}
.popi:hover{background:var(--bg)}
.popi.on{background:var(--gold-bg);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:var(--bw) solid var(--line2);background:var(--card);color:var(--dim);font:inherit;font-size:12px;line-height:1;padding:3px 7px;border-radius:var(--r);cursor:pointer;white-space:nowrap}
.vb:hover{color:var(--ink);border-color:var(--ink)}
.vb.up.on{background:var(--c-green-96);border-color:var(--c-green-46);color:var(--c-green-35);font-weight:700}
.vb.down.on{background:var(--hot-bg);border-color:var(--c-red-44);color:var(--c-red-40);font-weight:700}.vb.mid.on{background:var(--warm-bg);border-color:var(--c-yellow-64-3);color:var(--c-yellow-43);font-weight:700}
.vb.tl{width:17px;height:17px;min-width:17px;padding:0;border-radius:var(--r-round);font-size:0}
.vb.tl.up{background:var(--c-green-93);border-color:var(--c-green-77)}.vb.tl.mid{background:var(--c-yellow-92);border-color:var(--c-yellow-78-2)}.vb.tl.down{background:var(--c-red-87);border-color:var(--c-red-71)}
.vb.tl:hover{filter:brightness(.94)}
body .vb.tl.up.on{background:var(--c-green-46);border-color:var(--c-green-35)}body .vb.tl.mid.on{background:var(--c-yellow-68);border-color:var(--c-yellow-43)}body .vb.tl.down.on{background:var(--c-red-44);border-color:var(--c-red-40)}
body.cs .vb.tl.up.on{background:var(--c-green-58);border-color:var(--c-green-44)}body.cs .vb.tl.mid.on{background:var(--c-yellow-71);border-color:var(--c-yellow-39)}body.cs .vb.tl.down.on{background:var(--c-red-54);border-color:var(--c-red-40-2)}
body .tchips .vb.tl,body .thead .tchips .vb.tl{width:20px;min-width:20px;height:20px;padding:0;border-radius:var(--r-round)}

.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:var(--r)}
.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:var(--r)}
.popv.vp i{background:var(--c-green-96);color:var(--c-green-44)} .popv.vn i{background:var(--hot-bg);color:var(--c-red-40-2)} .popv.vm i{background:var(--warm-bg);color:var(--c-yellow-39)}
.score.sp{color:var(--gain,var(--c-green-46))} .score.sn{color:var(--hot)} .score.sz{color:var(--dim)}
.chip.vch{background:var(--bg);border:var(--bw) solid var(--line2);color:var(--ink)}
.subl{list-style:none;margin:6px 0 2px 0;padding:4px 0 4px 10px;border-left:var(--bw2) solid var(--gold-line,var(--line2));background:var(--sub-bg,var(--warm-bg));border-radius:0 var(--r) var(--r) 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:var(--bw) solid var(--line2);background:var(--bg);color:var(--dim);font:inherit;font-size:14px;line-height:1;padding:2px 6px;border-radius:var(--r);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:var(--bw) 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 .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:var(--r);border:var(--bw) solid var(--line2);background:var(--card);font-size:12.5px;line-height:1;white-space:nowrap;margin:0}.tchips .slot: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 .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:var(--bw) solid var(--line2);border-radius:var(--r);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);border:var(--bw) solid var(--gold-line,var(--c-teal-88));border-radius:var(--r);
  font-size:13px;color:var(--gold-ink,var(--c-green-37))}
.fbanner.show{display:flex}
.fbanner .fbanner-reset{border:var(--bw) solid var(--gold-line,var(--c-teal-88));background:var(--card);
  color:var(--gold-ink,var(--c-green-37));border-radius:var(--r);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}}

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{font-variant-numeric:tabular-nums}

.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:var(--bw) solid var(--line)+радиус 12px, что у .docs/.chat
   на странице дела), а не карточка на всю страницу (её сняли раньше в этой же партии правок) */
.propage .grp{margin:0;box-sizing:border-box;min-width:0}
.propage .grp h2{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:var(--bw) 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,var(--c-green-46))}
.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,var(--c-green-46));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:var(--bw) 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:var(--bw) 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;box-sizing:border-box;display:inline-flex;align-items:center;user-select:none}
.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;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}

.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,var(--c-grey-50))}
/* страница одного дела */
.home{color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}
h1 .home.newbtn{display:inline-block}
.home:hover{color:var(--accent)}
.thead{
  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:var(--r-round);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:var(--bw) solid var(--line);padding-top:10px}
.tnotes a{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{
  width:min(620px,100%);}
.dlg h2{margin:0 0 14px;}
.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 input,.f select,.f textarea{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}
   /* обычная кнопка */

/* ===== первая версия совету ===== */
/* фоны в оттенках светло-зелёного, розового нет */

body.tagged .chip.due{color:var(--c-orange-40);background:var(--c-green-93)}
body.tagged .chip.who{background:var(--c-green-96);color:var(--c-green-44)}

/* значок именно того фильтра, который сузил список (не «все»), обведён - дополняет плашку сверху,
   видно с первого взгляда, какой фильтр включён (Аня 18.09) */
body .tagbtn.on.narrow{border-color:var(--hot);box-shadow:0 0 0 2px var(--hot)}
body.tagged .popv.vn i{background:var(--c-green-93);color:var(--c-orange-40)}
body.tagged .popv.vm i{background:var(--c-green-96);color:var(--c-yellow-39)}
body.tagged .popv.vp i{background:var(--c-green-89-2);color:var(--c-green-37)}
body.tagged .popi.on{background:var(--gold-bg);border-color:var(--gold-line)}
body.tagged li.t.picked{background:var(--c-green-96);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:var(--c-green-93)}
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:var(--c-green-37);background:var(--c-green-93);
  border:var(--bw) solid var(--c-green-82);border-radius:var(--r);padding:3px 9px;margin-top:4px}
body.tagged .first a{color:var(--c-green-28-2);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:var(--r);background:var(--card);border:var(--bw) solid var(--c-green-71);color:var(--c-green-37);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:var(--row-mark);--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;justify-content:flex-start}
.delacts .del_all{color:var(--c-red-40);border-color:var(--c-red-77)}
/* сведения из подзадач на странице дела (Аня 17.09: всё видно сразу, не заходя в каждую подзадачу) */
.subnotes{border-top:var(--bw) 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,var(--c-green-42));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}
.unotes .crbody{padding:0 14px 10px;white-space:normal}
.unotes .mtext{white-space:pre-wrap;line-height:1.5}
/* 27.09: папки заметок дела (nf_html): карточка как у папок «Инфо и документы», в списке над заметками без папки; поле «Папка заметок» в правке */
.unotes .nfsecs{display:flex;flex-direction:column;margin:0}.unotes .nfsecs>details.crd{margin:0}

.nffold>summary .dcnum{margin-left:auto;font-size:13.5px;font-weight:400;color:var(--dim,var(--c-grey-43));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,var(--c-green-42))}.nffold>.crbody>.nflist:empty{display:none}
@media (max-width:700px){.unotes .nffold>.crbody{padding-left:12px}}
.unotes .nfdrop{outline:2px dashed var(--accent,var(--c-green-37));outline-offset:2px}
.unedform .nfsel{display:block;margin:8px 0 0;font-size:14px;color:var(--dim,var(--c-green-42))}
.unedform .nfsel select{display:block;width:100%;box-sizing:border-box;margin-top:4px}
.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:var(--c-orange-49-2);margin:0 0 4px}.drafttag[hidden]{display:none}
.picked-files .pickx{border:0;background:none;color:var(--c-red-40);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}

.unedform[hidden]{display:none}.unedform input[name=title]{width:100%;box-sizing:border-box;margin:0 0 6px}
.unedform textarea{width:100%;box-sizing:border-box;min-height:320px}
#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:var(--bw) dashed var(--line2);border-radius:var(--r);padding:6px 10px}.devlink summary{cursor:pointer}.devlink .synlk,.devlink .humrow{display:block;margin:4px 0}.devlink .humrow select{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:var(--bg);border:var(--bw) solid var(--line2,var(--c-grey-82));border-radius:var(--r);font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink,var(--c-grey-13))}.ncw>.uicopy{position:absolute;top:4px;right:4px;margin:0;background:var(--card)}.ncin{font:0.92em ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--gold-bg);padding:1px 5px;border-radius:var(--r)}
.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;margin:0 0 6px}
/* обсуждения подзадач на странице дела */
.subchats .schat{margin:0 0 14px}

.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:var(--sub-bg);border-left:var(--bw2) solid var(--gold-line);padding:6px 10px;border-radius:var(--r);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}

.chip.due.late{color:var(--c-red-40)!important;background:var(--c-red-92)!important}
.subn .sdue{color:var(--c-orange-49-2);text-decoration:none;font-weight:600}

.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:var(--bw) solid var(--line2);border-radius:var(--r);min-width:180px}
.batchip small{font-size:12px;font-weight:700;margin-left:3px;color:var(--c-green-49-2)}
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:var(--bw) 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{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}

/* ширина списка подзадач задаётся прямо: 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:var(--c-green-53);margin:6px 2px 4px;padding:0;border:0;background:none}
.cell li.rsep{list-style:none;height:0;border:0;border-top:var(--bw) dashed var(--c-green-80-2);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:var(--bw) solid var(--c-green-84);padding:8px 4px 4px;font-size:13px;color:var(--c-green-57);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:var(--c-green-53)}
.pzone .pn{font-size:12px;background:var(--gold-bg);border-radius:var(--r);padding:0 6px;margin-left:2px}
.pzone.over>details>summary{background:var(--c-green-96);outline:2px dashed var(--c-green-74);outline-offset:-2px;border-radius:var(--r);color:var(--c-green-41-2)}
.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;}
.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 9px 5px 5px;min-height:34px;box-sizing:border-box;font-size:15px;line-height:22px;border-radius:var(--r);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:var(--bw) solid var(--c-green-60);border-radius:var(--r);background:var(--card);margin-right:0}
body .frows .fgrp .tagbtn.on::before{content:"✓";background:var(--c-green-53-2);border-color:var(--c-green-53-2);color:var(--c-grey-100);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:var(--c-green-93);box-shadow:inset 4px 0 0 var(--c-green-68)}
.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{color:var(--ink);max-width:780px;width:100%;box-sizing:border-box;}
.newdlg h2{margin:0 0 10px;}
.newdlg .nf{display:flex;flex-direction:column;gap:4px;margin:0 0 10px}

.newdlg .ngrp{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]{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 .nacts{display:flex;gap:8px;justify-content:flex-end}
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}

/* четыре клетки матрицы: важно+срочно красный, важно+не срочно оранжевый, не важно+срочно жёлтый,
   не важно+не срочно зелёный (Аня 23.09). Страница совета (body.cs) остаётся как была. */
/* серо-белый сайт: цвет живёт только в рамке клетки, в её подписи и в строках дел (Аня 23.09) */

body.tagged .chip.due{background:var(--bg)}
body.tagged .chip.who{background:var(--gold-bg);color:var(--c-grey-36)}

/* элементы интерфейса в серо-белой гамме: плюс, шкала выполнения, ползунок размера текста (Аня 23.09) */
body.tagged .pbar i{background:var(--gold-bg);border-color:var(--line)}
body.tagged .pbar i.on{background:var(--c-green-58-2);border-color:var(--c-grey-52);color:var(--c-grey-100)}
body.tagged input.fszr::-webkit-slider-runnable-track{background:var(--c-grey-90);border-color:var(--c-grey-82)}
body.tagged input.fszr::-moz-range-track{background:var(--c-grey-90);border-color:var(--c-grey-82)}
body.tagged input.fszr::-webkit-slider-thumb{background:var(--c-grey-50);box-shadow:0 0 0 1px var(--c-grey-36),0 2px 5px rgba(0,0,0,.3)}
body.tagged input.fszr::-moz-range-thumb{background:var(--c-grey-50);box-shadow:0 0 0 1px var(--c-grey-36),0 2px 5px rgba(0,0,0,.3)}
body.tagged input.fszr:focus-visible{outline-color:var(--c-grey-36)}
body.tagged .fszbox .fsztick i{background:var(--c-green-58-2)}
body.tagged .fszbox .fsztick,body.tagged .fszbox .fsza{color:var(--c-grey-36)}
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,var(--c-grey-47-2) var(--p,0%),var(--c-grey-90) var(--p,0%))}
body.tagged .prog input[type=range]::-moz-range-track,body.tagged .f-progress input[type=range]::-moz-range-track{background:var(--c-grey-90)}
body.tagged .devbox .devsw.on .sw{background:var(--c-grey-47-2)}
body.tagged .devbox .devsw.on .l1{color:var(--c-grey-31)}

body.tagged .frows .fgrp .gt{color:var(--c-grey-39)}
body.tagged .frows .fgrp .tagbtn,body.cs.tagged .frows .fgrp .tagbtn.on{color:var(--c-grey-36)}
body.tagged .frows .fgrp .tagbtn.on::before{background:var(--c-grey-50);border-color:var(--c-grey-50)}
/* фильтр, который сейчас сужает список: яркий значок (заливка, жирный шрифт), а не обычная галочка; строка обведена,
   в конце строки короткая пометка и ссылка «Réinitialiser» вместо отдельной плашки во всю ширину (Аня 18.09) */
body .frows .fgrp .tagbtn.on.narrow{background:var(--hot)!important;color:var(--c-grey-100)!important;font-weight:700!important;border-radius:var(--r);padding:5px 9px 5px 5px!important;outline:0!important;box-shadow:none!important}
body .frows .fgrp .tagbtn.on.narrow::before{background:var(--card)!important;border-color:var(--c-grey-100)!important;color:var(--hot)!important}
body .frows .fgrp .tagbtn.on.narrow .tn{color:var(--c-orange-92)!important}
body .frows .fgrp .tagbtn.narrow:not(.on){background:var(--hot-bg)!important;color:var(--hot)!important;font-weight:700!important;border-radius:var(--r);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:var(--sub-bg)}
.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.tagged .headacts .me{color:var(--c-grey-36)}
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:var(--bw) solid var(--line2);border-radius:var(--r);padding:1px 8px;margin-right:6px;white-space:nowrap}
/* язык: один флажок, щелчок переключает на язык этого флага (интерфейс и тексты) */
.langsw{display:inline-flex;align-items:center;padding:3px;border:var(--bw) solid var(--c-grey-82);border-radius:var(--r);background:var(--card);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:var(--bw) dashed var(--c-grey-69);border-radius:var(--r);font-size:12px;color:var(--c-grey-36)}
.devbox .devsw{display:inline-flex;align-items:center;gap:6px;color:var(--c-grey-21);text-decoration:none;white-space:nowrap}
.devbox .devsw .sw{position:relative;flex:none;width:32px;height:18px;border-radius:var(--r);background:var(--c-grey-82);transition:background .15s}
.devbox .devsw .sw i{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:var(--r-round);background:var(--card);box-shadow:var(--shadow-s);transition:left .15s}
.devbox .devsw.on .sw{background:var(--c-green-58-3)}
.devbox .devsw.on .sw i{left:16px}
.devbox .devsw .l0,.devbox .devsw .l1{color:var(--c-grey-50)}
.devbox .devsw:not(.on) .l0{color:var(--c-grey-13);font-weight:700}
.devbox .devsw.on .l1{color:var(--c-green-40);font-weight:700}
.devbox .devnote{color:var(--c-grey-50);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{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:not(.lkro){display:none!important}/* Аня 06.10: рамку связей видят все, кто может править, а не только админы и разработчики */.linksbox .hint{font-size:12px;color:var(--dim);margin:0 0 3px}
.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{margin:0}   /* связи с другими задачами: отдельная рамка, только в виде разработчика (Аня 19.09) */
.linksbox .catrow{margin:0 0 8px}
.linksbox .catpick{display:inline-flex;align-items:center;gap:8px;border:var(--bw) solid var(--line2);background:var(--card);border-radius:var(--r);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;justify-content:flex-start}
.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;}
.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:var(--c-green-58-2)}
.langsw svg{width:30px;height:20px;border-radius:var(--r);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{opacity:.35;display:inline-flex;align-items:center}
.popen{cursor:pointer;opacity:.35}.popen:hover{opacity:.8}.popen.on{opacity:1;color:var(--accent,var(--c-green-37))}
.plock:hover{opacity:.8}

.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{opacity:.35;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:var(--c-grey-92)!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:var(--c-red-42)}.privmark.on .lk{stroke-width:2.4}
/* дело под замком (cs_hidden) не серое, только красный замок: серым бывает лишь список ожидания (Аня 27.09) */
/* Аня 06.10: «Законченные задачи» - самая нижняя рамка на всю ширину, серая, свёрнута; пустая не видна */
.grid>.cell.donecell{grid-column:1/-1}.cell.donecell:not(:has(li.t)){display:none}

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:var(--bw) dashed var(--line2);border-radius:var(--r);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}

.cell.waitcell>header{cursor:pointer;user-select:none}
.cell.waitcell .wname::before{content:"▾";color:var(--c-green-49);font-size:14px}
.cell.waitcell.wclosed .wname::before{content:"▸"}
.cell.waitcell.wclosed>ul{display:none}

.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:var(--c-green-49)}
/* рамка «Памятки» (Аня 12.10): первая, над «важно · срочно», свёрнута; цвета те же, что у «важно · не срочно» (классы u-low i-high) */
.grid>.cell.memocell{grid-column:1/-1}
.cell.memocell .wname{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;min-width:0}
.cell.memocell .waitsub{font-size:13px;font-weight:400;color:var(--dim)}
li.t.waiting,li.sub.waiting{opacity:.85;filter:saturate(.25);background:var(--c-grey-92)!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 .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.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:var(--c-green-15);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:var(--c-red-47);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:var(--c-green-89);transform:scale(1.6);z-index:2;box-shadow:0 0 0 1.5px var(--c-grey-100),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:var(--c-yellow-82);transform:scale(1.6);z-index:2;box-shadow:0 0 0 1.5px var(--c-grey-100),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:var(--c-green-15);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:700;line-height:1;color:var(--c-grey-100);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:var(--c-green-15);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:var(--c-green-93);border-radius:var(--r);box-shadow:inset 4px 0 0 var(--c-green-68)}
.subn{display:block;flex:0 0 100%;width:100%;box-sizing:border-box;margin:1px 0 0 8px;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:var(--c-green-46-3);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)}

/* раздел «Tâches récurrentes» на главной (Аня 25.09): во всю ширину под четырьмя клетками, спокойный жёлтый (Аня 26.09) */
.grid>.cell.recurcell{grid-column:1/-1}

.cell.recurcell>header .cellname::before{color:var(--c-yellow-44)}
.cell.recurcell .recrow{color:var(--c-yellow-36)}

.cell.recurcell .recrow .recst{color:var(--c-yellow-33)}
.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:var(--c-green-42-2)}
/* Аня 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:not(.recurcell) li.t>.recrow{order:6}   /* Аня 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 .recst{color:var(--c-green-37);font-weight:700}
.recdue{white-space:nowrap}.recdue.late{color:var(--hot);font-weight:600}
.recmark{display:inline-flex;align-items:center;color:var(--c-green-46-2)}.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(--r);cursor:pointer;   /* маленькая кнопка */
  border:var(--bw) solid var(--c-green-58);background:var(--c-green-58);color:var(--c-grey-100);font-weight:600}
.recdone:hover{background:var(--c-green-51);border-color:var(--c-green-51)}.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 var(--c-green-68);border-radius:var(--r)}
/* правка названия на месте */
.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:var(--r);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:var(--c-grey-100);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:var(--bw) solid var(--accent);border-radius:var(--r);background:var(--card);color:var(--ink)}
.editing{display:flex!important;align-items:center;flex:1 1 100%}
textarea.tinput{font:inherit;resize:none;overflow:hidden;display:block;line-height:inherit;flex:1 1 0;width:auto;padding:0 4px;border:0;box-shadow:0 0 0 1.5px var(--accent)}   /* рамка тенью: поле не выше самого названия */
h1.editing{align-items:flex-start}
/* правка протокола и заметки: карточка остаётся обычным блоком, окно правки на месте текста и той же ширины (Аня 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:18px}
/* проект задачи (бывшая «тема для размышления», Аня 10.10): пунктирная рамка, фон светлее обычной строки, подпись;
   вместо ползунка выполнения голосование 👍 👎 🤷 */
body.tagged .cell li.t.idea,body .subl li.sub.idea,.thead.idea{border-style:dashed;border-color:var(--c-green-75);
  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:var(--gold-bg);border:var(--bw) dashed var(--c-green-75);
  border-radius:var(--r);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:var(--bw) solid transparent;border-radius:var(--r);
  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:var(--r);
  background:linear-gradient(to right,var(--accent) var(--p,0%),var(--c-green-93) 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:var(--r-round);background:var(--card);border:var(--bw) solid var(--accent);box-shadow:var(--shadow-s)}
.prog input[type=range]::-moz-range-track,.f-progress input[type=range]::-moz-range-track{height:5px;border-radius:var(--r);background:var(--c-green-93)}
.prog input[type=range]::-moz-range-progress,.f-progress input[type=range]::-moz-range-progress{height:5px;border-radius:var(--r);background:var(--accent)}
.prog input[type=range]::-moz-range-thumb,.f-progress input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:var(--r-round);background:var(--card);border:var(--bw) 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:var(--r)}
.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{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:var(--c-green-89);transform:scale(1.6);z-index:2;
  box-shadow:0 0 0 1.5px var(--c-grey-100),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:var(--c-yellow-82);transform:scale(1.6);z-index:2;
  box-shadow:0 0 0 1.5px var(--c-grey-100),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:var(--c-red-47);cursor:pointer}
.lawstar:not(.on){color:var(--c-green-69);opacity:.45}
.lawstar:not(.on):hover{color:var(--c-red-47);opacity:.6}
h1 .lawstar{font-size:30px;top:-.04em}
span.legal{color:var(--c-red-47);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:var(--c-blue-60)}
.chip.t-beaute,.ic.t-beaute,.tagbtn.t-beaute .ic,body.cs .tagbtn.t-beaute .ic{color:var(--c-red-55)}
.chip.t-ressources,.ic.t-ressources,.tagbtn.t-ressources .ic,body.cs .tagbtn.t-ressources .ic{color:var(--c-yellow-62)}
.chip.t-securite,.ic.t-securite,.tagbtn.t-securite .ic,body.cs .tagbtn.t-securite .ic{color:var(--c-orange-56)}body.cs .tagbtn.t-dev .ic{color:var(--c-teal-50)}body.cs .tagbtn.t-paper .ic{color:var(--c-yellow-54)}body.cs .tagbtn.t-users .ic{color:var(--c-yellow-80)}body.cs .tagbtn.t-houses .ic{color:var(--c-green-47)}body.cs .tagbtn.t-contractors .ic{color:var(--c-yellow-75)}
.chip.t-sante,.ic.t-sante,.tagbtn.t-sante .ic,body.cs .tagbtn.t-sante .ic{color:var(--c-red-50)}
.chip.t-batiment,.ic.t-batiment,.tagbtn.t-batiment .ic,body.cs .tagbtn.t-batiment .ic{color:var(--c-yellow-46)}

/* всё про «сначала надо закончить» в окне правки одним блоком */
.depbox{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{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:var(--r-round);flex:none;align-self:flex-start;margin-top:.36em}
.avis .vp .dot{background:var(--c-green-63)} .avis .vm .dot{background:var(--c-yellow-75)} .avis .vn .dot{background:var(--c-red-50-2)}
.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:var(--c-green-46)} .avis .avst.warn{color:var(--c-yellow-47-2)} .avis .avst.refused{color:var(--c-red-40)}
.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:var(--r);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:var(--bw) solid var(--gold-line);color:var(--gold-ink);
  border-radius:var(--r);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{padding:12px 16px 14px;margin:14px 0;max-width:760px}

.msgbox .mltab{border-collapse:collapse;font-size:13px;margin:4px 0}.msgbox .mladd{display:flex;flex-wrap:wrap;gap:6px}.msgbox .mladd input,.msgbox .mladd select{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{margin-left:4px;max-width:100%}.msghint a{color:inherit}

/* фото и документы дела */
.docs{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:var(--r);border:var(--bw) solid var(--line2);background:var(--gold-bg);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:var(--r);background:rgba(255,255,255,.9);font-size:12px;padding:1px 6px;cursor:pointer;color:var(--c-red-35);display:none}
.ditem:hover .ddel,.ditem:focus-within .ddel{display:block}
.dvtog{display:inline-flex;vertical-align:middle;margin-left:12px;font-weight:400}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:var(--bw) solid var(--line,var(--c-grey-90))}body[data-dv=rows] .ditem .dthumb{width:40px;height:40px;flex:none;border-radius:var(--r)}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:var(--c-grey-90);font-size:14px}
#lbx .lbname{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#lbx .lbn{color:var(--c-grey-69)}
#lbx .lbopen{margin-left:auto;color:var(--c-grey-100);background:var(--c-green-46-5);border:var(--bw) solid var(--c-green-74-2);border-radius:var(--r);padding:5px 12px;font-weight:600;text-decoration:none}#lbx .lbopen:hover{background:var(--c-green-52-2)}#lbx .lbx{background:none;border:0;color:var(--c-grey-100);font-size:22px;cursor:pointer}
#lbx .lbprev,#lbx .lbnext{background:none;border:0;color:var(--c-grey-100);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:var(--c-grey-69);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 .lbfs{background:none;border:var(--bw) solid var(--c-grey-50);border-radius:var(--r);color:var(--c-grey-100);padding:5px 12px;font-size:14px;cursor:pointer}#lbx .lbfs:hover{border-color:var(--c-grey-90)}#lbx .lbfs[hidden]{display:none}#lbx .lbopen[hidden]+.lbfs{margin-left:auto}#lbx .lbopen[hidden]+.lbfs[hidden]+.lbx{margin-left:auto}#lbx.fs .lbhint{display:none}#lbx.fs .lbbody{padding:0}#lbx.fs .lbbody iframe{border-radius:0}
#lbx ::selection{background:transparent}
#lbx button:focus{outline:none}
#lbx .lberr{color:var(--c-grey-90);text-align:center;padding:24px;font-size:16px}
#lbx .lbbody iframe{width:100%;height:100%;border:0;background:var(--card);border-radius:var(--r)}
body.lbon{overflow:hidden}
details.crd.crdfs{position:fixed;inset:0;z-index:85;margin:0;border-radius:0;border:0;overflow:auto;background:var(--gold-bg,var(--card));padding:0 20px 40px;font-size:calc(17px * var(--fz,1))}details.crd.crdfs>summary{position:sticky;top:0;z-index:2;background:var(--gold-bg)!important;padding-top:12px;margin-top:0;padding-bottom:8px}details.crd.crdfs .crbody{line-height:1.55}body.crdfson{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:var(--r);background:rgba(255,255,255,.92);font-size:12px;padding:1px 6px;cursor:pointer;color:var(--c-green-37-2);display:none}
.ditem:hover .dren,.ditem:focus-within .dren{display:block}
body.ro .ditem .dren{display:none!important}
.docs .dadd{cursor:pointer}.docs h2 .dnew{margin-left:auto}.tpanel .docs h2 .dnew .ico,.synpanel .docs h2 .dnew .ico{display:inline}body.ro .docs .dnew{display:none!important}
.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:var(--r);background:var(--accent,var(--c-green-37-2));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:var(--c-red-40);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:var(--bw) 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{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,var(--c-green-56))}.deparr.on circle,.deparr.on polygon{opacity:1;fill:var(--accent,var(--c-green-56))}.deparr.dim{opacity:.2}.deparr svg{display:block;width:100%;height:100%;overflow:visible}.deparr path{fill:none;stroke:var(--dim,var(--c-green-60));stroke-width:1.3;opacity:.7}.deparr polygon{fill:var(--dim,var(--c-green-60));opacity:.95}.deparr circle{fill:var(--dim,var(--c-green-60));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:var(--c-green-49);font-size:14px}
.cell.fold.wclosed>header .cellname::before{content:"▸"}
.cell.fold.wclosed>ul{display:none}

.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)}

/* заголовки одного уровня одним шрифтом: Sous-tâches, Notes, Discussion (Аня 17.09) */
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.dev .tpanel .row:has(#f_urgency){display:none!important}   /* срочность, важность и срок в виде разработчика не нужны: место дела задаёт матрица, срок уже в шапке (Аня 19.09) */

.macts{margin-left:8px;white-space:nowrap;display:inline-flex;align-items:center;gap:2px}   /* кнопки .mact вида .uiact (27.09) */

.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;box-sizing:border-box}
.meditbox .chatacts{justify-content:flex-end}

.mfiles{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.mfiles img{max-width:200px;max-height:150px;border-radius:var(--r);border:var(--bw) solid var(--line2);display:block}
.mfile{display:inline-flex;align-items:center;gap:7px;border:var(--bw) solid var(--line2);border-radius:var(--r);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:var(--r);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:var(--card)}
.mfiles a.mdoc span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}

.crh{display:block;font-weight:700;color:var(--gold-ink);margin:2px 0 3px}

.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) */

.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)}

.chatform.crmode .crdate{display:flex}

.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;margin:0 0 6px}

.crd>summary{cursor:pointer;list-style:none;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 a.agendabtn{margin-left:0;white-space:nowrap}

.crfuture .agendabtn .ico{width:16px;height:16px;vertical-align:-2px}
@media (max-width:700px){.crfuture .agendabtn .crnlab{display:none}}
.crd .crh{display:inline;margin:0;}
.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{flex:none}

.sharebtn.done{color:var(--c-green-46)}
.sharebtn.done .ico{display:none}
.sharebtn.done::after{content:"✓";font-weight:700}

.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>summary .crh{flex:1 1 0;min-width:0}   /* 12.10: и у закрытой, иначе на телефоне ▸ стоит отдельной строкой и при открытии заголовок прыгает вверх */
/* один ряд действий - один вид (Аня 23.09); 27.09: вид и зазор даёт UI_ACT_CSS, в открытой карточке тот же зазор, значки не прыгают */
a.popi{text-decoration:none;display:flex}
.crbody{padding:10px 16px 14px;border-top:var(--bw) solid var(--gold-line);background:var(--sub-bg);border-radius:0 0 var(--r) var(--r)}
.crform{border-top:var(--bw) 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}

.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;white-space:nowrap}
.crnext .agendabtn .ico,.crnext .newbtn.crnextmove .ico,.schedexform .crnextcancel .ico{width:16px;height:16px;vertical-align:-2px}

.crnext .crnsub .unacts{margin-left:0;gap:2px}
body.cs:not(.collab) .crag .unpen,body.vw .crnext .unpen{display:none}
.crnext .sharebtn.done{color:var(--c-green-46)}
@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 .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 .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:var(--bw) 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:var(--bw) solid var(--line2);padding:8px 14px;width:100%;box-sizing:border-box}
.schedexform[hidden]{display:none}

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:var(--r);background:var(--gold-ink);color:var(--c-grey-100);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}

.crprep{border-top:var(--bw) solid var(--gold-line);padding:10px 14px 12px;background:var(--sub-bg);border-radius:0 0 var(--r) var(--r);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;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:var(--bw) 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{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>summary::before{color:var(--dim)}
.crd.pnote .crh{font-weight:500;font-size:14px;color:var(--ink)}
.pnsec>summary{font-weight:600}

.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:var(--c-green-51-2)}
body .tlight .vb.tl.mid:not(.warn){background:var(--c-yellow-54-2)}
body .tlight .vb.tl.down{background:var(--c-red-46)}
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:var(--c-green-79-2);box-shadow:0 0 0 1.5px var(--c-grey-100),0 0 7px 2px rgba(59,224,90,.85)}
body .tlight .vb.tl.mid.mine:not(.warn){background:var(--c-yellow-80);box-shadow:0 0 0 1.5px var(--c-grey-100),0 0 7px 2px rgba(255,204,26,.85)}
body .tlight .vb.tl.down.mine{background:var(--c-red-57);box-shadow:0 0 0 1.5px var(--c-grey-100),0 0 7px 2px rgba(255,59,47,.85)}
/* своё мнение: лампа остаётся тёмной, вокруг цветной ободок; горит только общее решение */
body .tlight .vb.tl.up.mine:not(.go){background:var(--c-green-51-2);box-shadow:0 0 0 3px var(--c-green-79-2)}
body .tlight .vb.tl.mid.mine:not(.warn){background:var(--c-yellow-54-2);box-shadow:0 0 0 2px var(--c-yellow-80)}
body .tlight .vb.tl.down.mine{background:var(--c-red-46);box-shadow:0 0 0 2px var(--c-red-57)}
body .tlight .vb.tl.mine:not(.go):not(.warn) .vn{color:var(--c-grey-100);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 var(--c-green-40),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 var(--c-yellow-43),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:var(--c-red-57);transform:scale(1.6);z-index:2;box-shadow:0 0 0 1.5px var(--c-grey-100),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:var(--c-grey-100);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:var(--c-grey-100);background:var(--accent);border-radius:var(--r);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:var(--bw) solid var(--c-grey-82);border-radius:var(--r);padding:0 3px;line-height:14px;vertical-align:2px;color:var(--c-grey-50)}
.trl.s:hover{border-color:var(--c-green-58-2);color:var(--c-grey-21)}
.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:var(--bw) solid var(--gold-bg);box-sizing:border-box;margin:0 0 0 -6px}
.synppl .av:first-child{margin-left:0}
.synpanel{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:var(--bw) 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:var(--bw) 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:var(--bw) solid var(--line2);border-radius:var(--r);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 textarea{min-height:200px;resize:vertical;line-height:1.5}
.synpicker{padding:10px}
.synlab{font-size:13px;color:var(--dim);margin-bottom:6px}
.synfilter{font:inherit;width:100%;padding:6px 9px;border:var(--bw) solid var(--line2);border-radius:var(--r);background:var(--bg);margin-bottom:8px}
.lsrch{width:100%;max-width:520px;box-sizing:border-box;margin:0 0 10px;display:block}
.lsoff{display:none}
.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;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:var(--bw2) 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:var(--bw) solid var(--line2);color:var(--c-red-35);border-radius:var(--r);padding:3px 7px;cursor:pointer}
.ditem .synunpick{position:absolute;top:3px;right:3px}
.synunpick:hover{background:var(--card);border-color:var(--c-red-35)}
/* 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:var(--r)}
.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:var(--r);background:rgba(255,255,255,.94);border:var(--bw) solid var(--line2);box-shadow:var(--shadow-s)}
.ditem .synadd:hover{background:var(--card)}
.ditem .synadd.on{background:var(--accent);color:var(--c-grey-100);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;padding:8px 8px 8px 18px;font-size:14px;}
.syntoast[hidden]{display:none}

/* 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,var(--c-grey-100))}
.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,var(--c-green-37));pointer-events:none}
.fszbox .fsztick i{width:2px;height:7px;background:var(--c-green-49-2);margin-bottom:2px}
.fszbox .fsza{flex:none;line-height:1;font-weight:700;color:var(--gold-ink,var(--c-green-37))}
.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:var(--r);background:var(--gold-line,var(--c-green-82));border:var(--bw) solid var(--c-green-62)}
input.fszr::-webkit-slider-thumb{-webkit-appearance:none;box-sizing:border-box;width:30px;height:30px;margin-top:-11px;border-radius:var(--r-round);background:var(--accent);border:var(--bw) solid var(--c-grey-100);box-shadow:0 0 0 1px var(--c-green-28),0 2px 5px rgba(0,0,0,.3)}
input.fszr::-moz-range-track{box-sizing:border-box;height:10px;border-radius:var(--r);background:var(--gold-line,var(--c-green-82));border:var(--bw) solid var(--c-green-62)}
input.fszr::-moz-range-thumb{box-sizing:border-box;width:30px;height:30px;border-radius:var(--r-round);background:var(--accent);border:var(--bw) solid var(--c-grey-100);box-shadow:0 0 0 1px var(--c-green-28),0 2px 5px rgba(0,0,0,.3)}
input.fszr:focus-visible{outline:3px solid var(--c-green-28);outline-offset:2px;border-radius:var(--r)}
@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}
/* флажки не меньше 16px: раздел «ФОРМЫ» в начале файла */
/* fsz2-end */

/* fsz3-begin: контраст текста не ниже WCAG AA 4.5:1 (Аня 18.09); цвета кружков-аватаров не меняем, буквы на них тёмные */
.av[style*="background"]{color:var(--c-green-15)}
/* подсказки в полях (контраст): раздел «ФОРМЫ» в начале файла */
/* fsz5-begin: 19.09 контраст второстепенного текста (--dim/--faint были 4.6-5.3:1, стало 6.5-7:1); слайдер и размеры не трогаем */
:root{--dim:var(--c-yellow-38-2);--faint:var(--c-yellow-38-2)}
/* 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:var(--bw) solid var(--gold-line,var(--c-green-82));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,var(--c-green-82));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:var(--r)}
input.fszr::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9px;border-width:var(--bw2)}
input.fszr::-moz-range-track{height:6px;border-radius:var(--r)}
input.fszr::-moz-range-thumb{width:22px;height:22px;border-width:var(--bw2)}
.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,var(--c-green-42));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{max-width:230px}table.dtab2.bctab td.bcm{max-width:170px}.bctab .bcn{display:block}
.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,var(--c-green-37));text-decoration:none}.agdoc:hover{text-decoration:underline}.agdoc .ico{width:16px;height:16px;flex:none;margin-top:2px;color:var(--accent,var(--c-green-58))}
.headeraction{display:inline-flex;align-items:center;justify-content:center;flex:none;touch-action:manipulation}
.headeraction:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.prinv{margin-top:5px;font-size:13.5px}.prinv>summary{cursor:pointer;color:var(--gold-ink,var(--c-green-37));font-weight:600}.prinvl{margin-top:4px;max-height:320px;overflow:auto;}.prinvr{display:grid;grid-template-columns:82px minmax(0,1fr) auto auto;gap:8px;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 textarea{min-height:70px}.prdel.uiact{margin-left:auto}
.prow.pquote{color:var(--c-grey-36)}.prow.pquote .prn{color:var(--c-grey-31)}.prow.pquote .prdoc,.prow.pquote .prct a{color:var(--c-grey-36)}
.prct{margin-top:4px;font-size:13.5px;line-height:1.4;color:var(--dim,var(--c-green-42));overflow-wrap:anywhere}.prct a{color:var(--gold-ink,var(--c-green-37))}
.navdot{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;margin-left:8px;border-radius:var(--r-round);background:var(--c-red-47);color:var(--c-grey-100);font-size:12px;font-weight:700;line-height:1}.pralert{margin:0 0 8px;padding:9px 14px;border:var(--bw) solid var(--c-yellow-77-2);border-radius:var(--r);background:var(--c-yellow-95-2);color:var(--c-yellow-34);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,var(--c-green-37));text-decoration:none}.prdoc:hover{text-decoration:underline}.prdoc .ico{width:16px;height:16px;flex:none;margin-top:2px;color:var(--accent,var(--c-green-58))}
.pgrows{display:flex;flex-direction:column;max-width:1180px}.pgrows .pghint{margin:2px 2px 6px;font-size:13.5px;color:var(--dim)}.pgrows .crd.und{margin:0}.pgrows .crbody{background:var(--card);padding:6px 12px 10px}.pgrows .crbody table{background:var(--card)}
.backbtn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin:0 8px 0 0;border:var(--bw) solid var(--line,var(--c-grey-82));border-radius:var(--r-round);color:var(--dim);background:var(--card);text-decoration:none;align-self:center}.backbtn .ico{width:16px;height:16px}.backbtn:hover{color:var(--ink);border-color:var(--dim)}
/* кнопки форм (заметка, обсуждение, протокол) по возможности в одну строку (Аня 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}

@media (max-width:430px){.chatacts{flex-wrap:wrap}}
/* значки категорий на карточках крупнее (Аня 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{line-height:1.25}

.cell>header>.cellnew{margin:-5px 0 -5px auto}

/* 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:var(--r);-webkit-tap-highlight-color:transparent}
.prog .pgb::before{content:"";position:absolute;left:2px;right:2px;top:7px;bottom:7px;box-sizing:border-box;border:var(--bw) solid var(--c-green-53);border-radius:var(--r);background:var(--card)}
.prog .pgb.on::before{background:var(--accent);border-color:var(--c-green-47-2)}
.prog .pgb:hover::before{border-color:var(--c-green-34);box-shadow:0 0 0 2px rgba(106,151,93,.25)}
.prog .pgb:focus-visible{outline:3px solid var(--c-green-34);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:var(--r);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:var(--r);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:var(--c-grey-100);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:var(--bw) dashed var(--line2);border-radius:var(--r);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:var(--bw) solid var(--line2);border-radius:var(--r);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:var(--bw) solid var(--line2)}
#pop .grpnew input{flex:1;min-width:0}

.tmove .ico{width:16px;height:16px;stroke-width:2.1}
.tmove:hover,.tmove:focus-visible{background:var(--accent);color:var(--c-grey-100);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:var(--c-green-36)}
.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:var(--c-green-36)}
/* legend-end */

/* плашка разработчика теперь внутри низа меню: вплотную по ширине к остальным блокам, флажок и пометка одной строкой, переключатель двумя строками подписей */
.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:var(--c-grey-21);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,var(--c-grey-13));text-decoration:none;background:var(--card);border:var(--bw) solid var(--line,var(--c-green-84));border-radius:var(--r)}
.sidenav .devbox .devpage:hover,.sidenav .devbox .devpage.cur{font-weight:700;border-color:var(--c-green-40)}
.sidenav .devbox.devfold{display:block;padding:0;background:var(--card)}
.sidenav a.devbox.devfold{display:flex;align-items:center;gap:8px;min-height:var(--nav-foot-h);padding:var(--nav-foot-py) var(--nav-foot-px);box-sizing:border-box;font-size:var(--nav-foot-fs);font-weight:var(--nav-fw);color:var(--ink,var(--c-grey-13));text-decoration:none}
.sidenav a.devbox.devfold:hover,.sidenav a.devbox.devfold.cur{border-color:var(--c-green-40)}
body .sidenav a.devbox.devfold{background:var(--card)!important;border:var(--bw) dashed var(--c-grey-69)!important}body .sidenav a.devbox.devfold:hover,body .sidenav a.devbox.devfold.cur{border-color:var(--c-green-40)!important;box-shadow:none!important}
.sidenav .devlink small{display:block;font-size:11px;font-weight:400;color:var(--c-grey-50);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,var(--c-grey-13))}
.sidenav .devfold>summary::-webkit-details-marker{display:none}
.sidenav .devfold>summary::after{content:"▸";margin-left:auto;color:var(--c-grey-50)}
.sidenav .devfold[open]>summary::after{content:"▾"}
.sidenav .devfold>summary small{display:block;font-size:11px;font-weight:400;color:var(--c-grey-50);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:var(--c-green-40);text-decoration:underline}
.sidenav .devbox .devlog svg{width:1.1em;height:1.1em;flex:none}
.sidenav .devbox .devlog:hover,.sidenav .devbox .devlog.cur{color:var(--c-green-40);font-weight:700}
/* 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}
.tkline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0 0 10px}   /* Аня 12.10: галочка клиентов, «Вид: список/календарь» и «Фильтры» одной строкой */
.tkline>.tkrow{margin:0!important}
.tkline>.headrow.fhead,.tkline>.headrow.fhead>.filters{display:contents}   /* кнопка «Фильтры» сама стоит в строке и при раскрытии не прыгает */
.tkline .fbar{flex:0 0 auto}
.tkline .fchips:empty{display:none}   /* пустые чипы не дают лишний отступ, кнопка при раскрытии не сдвигается */
.tkline>.headrow.fhead>.uiaddw{margin-left:auto}
.tkline>.clmix{flex:1 1 330px;min-width:200px;line-height:1.25}   /* длинная подпись галочки переносится внутри, а не выталкивает «+» */
.tkline .frows{flex:1 1 100%!important;order:10}   /* раскрытые ряды под строкой во всю ширину */
.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;box-sizing:border-box;white-space:nowrap}

.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:var(--r);background:var(--hot);color:var(--c-grey-100);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:var(--bw) solid currentColor;border-bottom:var(--bw) 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:var(--r);background:var(--hot);color:var(--c-grey-100);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:var(--c-grey-100)}
.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 .fgrp .gt,body.tagged .frows .fgrp .gt{color:var(--c-green-42-3);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:var(--c-green-42-3)!important;font-weight:400}
body .frows .fgrp .tagbtn .tn,body .frows .fgrp .tagbtn.on:not(.narrow) .tn{color:var(--c-green-46-6)}
body .frows .fgrp .tagbtn:not(.narrow)::before{border-color:var(--c-green-60)}
body.tagged .frows .fgrp .tagbtn.on:not(.narrow)::before,body .frows .fgrp .tagbtn.on:not(.narrow)::before{background:var(--c-green-55);border-color:var(--c-green-55)}

/* legend внутри раскрытой панели, как ещё одна тихая строка */
.frows .taglegend{margin:0;padding:6px 12px 2px}
/* muted-end */

/* Аня 10.10: «Поделиться» в окне новой задачи, одна строка мелких галочек */
.nshare{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;color:var(--mute,var(--c-grey-43));margin:6px 0 2px}.nshare label{display:inline-flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap}.nshare input{margin:0}

/* Аня 12.10: важное письмо, сохранённое в «Документы»: строка со ссылкой на документ (жёлтый пузырь - раздел «ЧАТ» 2, цвета --imp-* в tokens.css) */

.mimpl{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:13px}
.mimpl .ico{width:var(--ico);height:var(--ico);flex:none}
.mimp .ico{width:var(--ico);height:var(--ico)}
body.ro .mimp{display:none}
.impm{position:absolute;z-index:90;min-width:200px;max-width:min(320px,calc(100vw - 16px));max-height:60vh;overflow:auto;font-size:14px;box-sizing:border-box}
.impm b{display:block;padding:4px 14px 6px;font-size:12.5px;opacity:.7;font-weight:600}
.impm button{display:block;width:100%;text-align:left;border:0;background:none;padding:7px 14px;font:inherit;color:inherit;cursor:pointer}
.impm button:hover,.impm button:focus{background:var(--gold-bg);outline:0}
/* Аня 12.10: ссылка документа на дело (doc_task_link) с длинным названием переносится, а не уходит за край */
.dcw>.dcm{white-space:normal;min-width:0;max-width:100%;overflow-wrap:anywhere}
/* Аня 12.10: строка важного письма с карандашом названия; окно сохранения: предупреждение и галочки вложений */
.mimpw{display:flex;align-items:center;gap:2px;flex-wrap:wrap;margin:6px 0 0}.mimpw .mimpl{margin:0;min-width:0}
.impdlg .impwarn{margin:0;padding:8px 12px;border:var(--bw) solid var(--imp-line);background:var(--imp-bg);border-radius:var(--r);font-size:14px;line-height:1.45}
.impdlg label{display:flex;flex-direction:column;gap:4px}.impdlg .impatt{padding:6px 10px;margin:0;min-width:0}
.impdlg .impatt legend{font-size:13px;color:var(--dim);padding:0 4px}.impdlg .impatt label{flex-direction:row;align-items:center;gap:6px;overflow-wrap:anywhere;padding:3px 0}
.impdlg .impatt input{width:auto;flex:none}
/* Аня 12.10: связь карточки Базовой информации с задачей и перенос в другое пространство (parts/infolink.py) */
.iftk{font-size:14px;line-height:1.45;margin:0 0 6px;color:var(--dim,var(--c-green-42));overflow-wrap:anywhere}
.ifform .iftasks{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--dim,var(--c-grey-43))}
.iftchips{display:flex;flex-wrap:wrap;gap:6px}.iftchips:empty{display:none}
.iftchip{display:inline-flex;align-items:center;gap:2px;max-width:100%;border:var(--bw) solid var(--line2,var(--c-green-84));border-radius:var(--r);padding:2px 2px 2px 10px;font-size:14px;color:var(--ink,var(--c-grey-13));overflow-wrap:anywhere}
.iftx{border:0;background:none;cursor:pointer;color:var(--dim,var(--c-green-42));font-size:12px;padding:2px 6px;border-radius:var(--r)}.iftx:hover{background:var(--gold-bg)}
.ifform label.ifmvt[hidden]{display:none}
.spmvpop{margin:8px 0 12px;}.spmvpop .row{margin:0}
.spmv{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.spmv select{flex:1 1 200px;min-width:0;max-width:100%}
.iflinks{margin:0;padding-left:18px;font-size:14px;line-height:1.5}

.msrcset{margin-left:4px}.msrcn{color:var(--accent,var(--c-orange-47))}.msrcb{padding:6px 0;color:var(--ink,inherit)}.msrcl{list-style:none;margin:0 0 8px;padding:0}
.msrcl li{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;padding:4px 0;border-bottom:var(--bw) dashed var(--line)}.msrcp{color:var(--dim)}
.msrckw{display:flex;gap:6px;align-items:center;flex:1 1 260px;min-width:0}.msrckw input{flex:1;min-width:0}
.msrcadd{display:flex;flex-wrap:wrap;gap:6px}.msrcadd input,.msrcadd select,.msrckw input{max-width:100%}
.msrcadd input{flex:1 1 160px;min-width:0}.msrch{margin:6px 0;font-size:12px;color:var(--dim)}
/* Аня 12.10: задачи клиента на его карточке, «+» задачи (parts/infolink.py, parts/clients.py) */
.cltk{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:0 0 8px}
/* Аня 12.10: выбранная кнопка не меняет размер, иначе соседние сдвигаются. Отступы у фильтров одни (выше, 5px 9px 5px 5px), жирность тенью, а не font-weight */
body .frows .fgrp .tagbtn.on.narrow,body .frows .fgrp .tagbtn.narrow:not(.on){font-weight:400!important;text-shadow:0 0 .6px currentColor,0 0 .6px currentColor}
.vb.up.on,.vb.down.on,.vb.mid.on,.deplist label.on,.devbox .devsw:not(.on) .l0,.devbox .devsw.on .l1{font-weight:inherit;text-shadow:0 0 .6px currentColor,0 0 .6px currentColor}.cltk .iftk{margin:0}.iftkd{color:var(--dim,var(--c-green-42));white-space:nowrap}

/* ===== Стиль сайта, Аня 15.10.2026: тонкие линии, углы чуть скруглены, пастельные тона, просто.
   Радиусы и толщины рамок по всему коду приведены скриптом (8-16px -> 4px, пилюли -> 5px, рамки 2-3px -> 1px);
   здесь только палитра и снятие объёмных теней. Слой последний в файле, поэтому перекрывает прежние палитры. ===== */

/* ===== бывшие style="" из кода (15.10.2026) ===== */
.spbgimg{width:1.05em;height:1.05em;border-radius:var(--r-round);object-fit:cover;vertical-align:-.15em;margin:0 .3em 0 0;display:inline}
.wrenchico{width:1.5em;height:1.5em;vertical-align:-.35em;flex:none}
.cabsz{width:1.35em;height:1.35em;vertical-align:-.3em;flex:none}
.budico{width:1.45em;height:1.25em;vertical-align:-.3em;flex:none}
.claudeico{vertical-align:-.15em}
.dashico{height:1.35em;width:auto;vertical-align:-.38em;margin-right:5px}
.av.avc{background:var(--bgc);color:var(--c-green-15)}
.tav.avc,.extdot,.sph i,.dmrs,.pmts{background:var(--bgc)}
.av.avpx{width:var(--avpx)!important;height:var(--avpx)!important}
.av.avfs{font-size:var(--avfs)!important}
.ctr{text-align:center}
.tkrow.tkflex{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 0 12px}
.tktabs.tktabs0{margin:0}
.spc i.s{background:var(--bgc);color:var(--sink)}
.spc i.s.sflex{flex:var(--fl) 1 0}
.spc i.s.sfull{width:100%}
.spc>.bar{width:var(--bw)}
.prbsum span.sbc{border-bottom-color:var(--bbc)}
.hint.hintsm{margin:6px 0 0;font-size:12.5px}
.catrow input[type=color].bgc{width:38px;height:32px;padding:0;border:0;background:none}

.catrow select.bgs{max-width:55%}
.flex1{flex:1}
.gap34{margin-top:34px}
.cldocic{display:inline-flex;vertical-align:middle;line-height:0;margin-right:3px}
.clmix{display:flex;gap:.45em;align-items:center;min-height:31px;font-size:.95em;cursor:pointer}
.mlauto{margin-left:auto}
.dcn.dblock{display:block}
.dcrow.dc1col{grid-template-columns:minmax(0,1fr)}
.devjrmore{margin:10px 14px}
.ctlrow{display:flex;gap:8px;margin:0 0 12px}
.ctlrowend{display:flex;justify-content:flex-end;margin:0 0 8px}
.ttitle.ttcenter{display:flex;align-items:center;gap:12px}
.agdw{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tlform.tled{flex-basis:100%}
.tlrow.tlwrap{flex-wrap:wrap}
.fbhinttxt{font-size:12.5px;line-height:1.4;color:var(--c-green-42);margin:2px 0 6px}
.presfr{width:100%;border:0;display:block;height:1200px}
.mt36{margin-top:36px}
.crdate.crdateflex{display:flex;flex-wrap:wrap;gap:8px}

.mtgnewgap{margin:0 0 10px}
.w100{width:100%}
.nodeco{text-decoration:none}
.plexn{margin-left:6px;padding:0 6px;border:var(--bw) dashed var(--c-grey-82);border-radius:var(--r);color:var(--faint);font-size:12.5px;white-space:nowrap}
.prinvdel.dcont{display:contents}
.otab .ot.otyear{width:110px}
.mqerr{padding:20px}
.redb{color:var(--c-red-40);font-weight:700}
.ttav{display:inline-flex;margin-right:10px;vertical-align:middle}
.gearlk18{text-decoration:none;font-size:18px}
.prcmphead{margin:0 0 8px;font-size:13px}
.crd.prcpubrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 0;padding:9px 14px}
.prcpubtxt{flex-basis:100%;line-height:1.4}
.prcpubrow input{flex:1;min-width:220px}
.rowgap6{display:flex;gap:6px;align-items:center}
.tasklk{color:inherit;text-decoration-color:var(--line2)}

.mphold{margin-left:6px;padding:0 6px;border-radius:var(--r);background:var(--c-yellow-95-3);color:var(--c-yellow-30);font-size:12.5px;white-space:nowrap}
.forminl{display:inline;margin:0}
.rbst{margin-left:6px;padding:0 6px;border-radius:var(--r);white-space:nowrap;font:inherit;font-size:12.5px;border:var(--bw) solid}
button.rbst{cursor:pointer}
.rbst.rbok{border-color:var(--c-green-74);background:var(--c-green-96);color:var(--c-green-35)}
.rbst.rbwait{border-color:var(--c-yellow-79);background:var(--c-yellow-95-3);color:var(--c-yellow-30)}
.rbst.rbno{border-color:var(--c-grey-82);background:var(--bg);color:var(--c-grey-39)}
.fs15{font-size:15px}
.mb8{margin:0 0 8px}

#spcdrv{min-width:320px}
.spcrow.spcrowtop{align-items:flex-start;gap:4px 32px}
.colgap6{display:flex;flex-direction:column;gap:6px}
.colgap2{display:flex;flex-direction:column;gap:2px;margin:2px 0}
.mkrow.mkrowtop{margin-top:4px}
.wdmdot.mkcol{width:18px;height:18px}
.dashbar{width:var(--bw)}
div.dashday.dashday14{margin-top:14px}
.gnt .gm,.gnt .gsum,.gnt .gb,.gnt .gms,.gnt .gtoday{left:var(--gl)}
.gnt .gm,.gnt .gsum,.gnt .gb,.gnt .gt,.gnt .gbg{width:var(--gw)}
.gnt .gbg{background-size:var(--gbs) 100%}
.ledgr{display:grid;grid-template-columns:auto auto auto 1fr;column-gap:.45em;row-gap:1px;white-space:normal;margin:.25em 0 .6em}
.ledline{grid-column:1/4;border-top:var(--bw) solid currentColor;margin:3px 0 1px}
.ledc{font-variant-numeric:tabular-nums;white-space:nowrap}
.ledr{text-align:right}
.ledb{font-weight:700}
.ledd{min-width:0;overflow-wrap:anywhere}
.sonyabox{background:var(--c-yellow-95);color:var(--c-violet-17);border-radius:var(--r);padding:26px 22px;max-width:380px;width:100%;text-align:center;font-family:sans-serif;box-shadow:var(--shadow-pop)}
.sonyat1{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c-violet-46)}
.sonyat2{font-size:1.5rem;font-weight:700;margin:.3em 0}
.sonyaface{font-size:6rem;line-height:1.1}
.sonyat3{font-size:1.35rem;font-weight:700;margin:8px 0}
.sonyat4{color:var(--c-violet-46);margin-bottom:16px}
.sonyabtn{font-size:1.1rem;font-weight:700;background:var(--c-red-72);color:var(--c-violet-17);border:0;border-radius:var(--r);padding:12px 24px;cursor:pointer}
.sonyabye{font-size:1.3rem;font-weight:700}

/* Аня 18.10: оформление по адресу (parts/brand.py): логотип владельца адреса вверху меню и на странице входа */
.brandtop{display:block;padding:12px 14px 8px}
.brandtop img{display:block;max-width:100%;max-height:64px;width:auto;height:auto}
.login .logo.brandlogo{width:auto;max-width:240px;height:auto;border-radius:0;object-fit:contain}
.brand .logo.brandlogo{width:auto;height:38px;border-radius:0;object-fit:contain}
.tlogo.brandlogo{object-fit:contain;border-radius:0}
