/* Клиентское обновление: свободная ширина списка и устойчивые группы фильтров. */
.main,.view,.task-main,.task-side,.card,.tablewrap{min-width:0}
.top .brand{min-width:0;flex-shrink:0;max-width:32%;white-space:nowrap}
.top .brand .faint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top nav{min-width:0;flex-wrap:nowrap}
.top .me{flex-shrink:0;white-space:nowrap}
.top .me>span{max-width:160px;overflow:hidden;text-overflow:ellipsis}
.task-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}
.task-filters .f,.task-filters .check{min-width:0;margin:0}
.task-filters label.f.compact input,.task-filters label.f.compact select{width:100%;max-width:none;min-width:0}
.filter-dates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;grid-column:span 2;min-width:0}
.filter-reset{align-self:end;justify-self:start}
.task-project-label{margin-top:5px}
.title-cell,.tc-title,.project-card h2,.task-head h1,.desc,.msg-body{overflow-wrap:anywhere}
.task-create{max-width:960px;margin-inline:auto}
.task-side .kv{grid-template-columns:100px minmax(0,1fr)}
.task-side .kv>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.task-side .kv select,.task-side .kv input{max-width:100%;width:100%}
.task-main .composer{margin:14px 0;border:1px solid var(--line);border-radius:10px;padding:14px;background:#fffaf7}
#feed{scroll-margin-top:80px}
.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:16px;align-items:start}
.project-grid>.card+.card{margin:0}
.project-description{white-space:pre-wrap;overflow-wrap:anywhere}
/* Переписка разделена по сторонам: клиент слева, команда справа — для всех зрителей. */
.feed{gap:12px;padding:6px 10px 14px;scrollbar-gutter:stable}
.msg{max-width:min(84%,760px);padding:12px 15px;border:1px solid #e4e4df;border-radius:16px;line-height:1.55;color:#29332f;box-shadow:0 1px 2px rgba(30,45,38,.03)}
.msg.client-message{align-self:flex-start;margin-right:auto;background:#f3f4f1;border-color:#e3e6df;border-bottom-left-radius:5px}
.msg.team-message{align-self:flex-end;margin-left:auto;background:#eaf3ef;border-color:#d5e5dc;border-bottom-right-radius:5px}
.msg.internal{background:#fbf2de;border:1px dashed #cfb679;color:#54452a}
.msg-head{gap:4px 9px;margin-bottom:5px;padding-right:0;color:#34443b}
.msg-head b{font-weight:600}.msg-side,.msg-time{color:#646f69;font-size:12px}
.msg-side{padding:1px 6px;background:rgba(255,255,255,.65);border-radius:6px}
.msg-body{font-size:15px;line-height:1.6}.msg .msg-hide{position:static;opacity:1;display:flex;width:fit-content;margin:5px 0 -4px auto;color:#657168;font-size:12px}
.feed>.event{padding:10px 0;color:#68706a;border-bottom:1px solid #eceee9;font-size:13px;line-height:1.55}
.feed>.event>b{font-weight:500}.feed .ev-time{color:#6b746e}
.msg.in-event{width:fit-content;max-width:min(84%,760px);margin-top:10px}
.msg.in-event.client-message{margin-left:0;margin-right:auto}.msg.in-event.team-message{margin-left:auto;margin-right:0}
.msg-atts>*{max-width:100%;min-width:0}.msg-atts img{max-width:100%}.att-file{overflow-wrap:anywhere}
.task-main .composer{background:#fafbf9;border-color:#e0e5de;border-radius:14px}
.composer .mode-hint{color:#606c64}.composer.internal .mode-hint{color:#805e18}
/* Спокойные кнопки без изменения расположения или поведения действий. */
.btn{justify-content:center;border-radius:10px;font-weight:500;border-color:#dcded7;box-shadow:0 1px 2px rgba(30,40,34,.04);transition:background-color .15s,border-color .15s,box-shadow .15s;color:#354238;text-decoration:none}
.btn:not(:disabled):hover{background:#f2f5f0;border-color:#bac5b9;box-shadow:0 2px 5px rgba(30,40,34,.07);text-decoration:none}
.btn.primary{background:#bd431d;border-color:#bd431d;color:#fff;box-shadow:0 2px 4px rgba(154,58,23,.13)}
.btn.primary:not(:disabled):hover{background:#a93817;border-color:#a93817;color:#fff}
.btn.danger{color:#9e352e;border-color:#e6c7c2;background:#fffafa}.btn.danger:not(:disabled):hover{background:#fbece8;border-color:#d6aaa1}
.btn.link{color:#315f79;box-shadow:none;border-radius:6px}.btn.link:not(:disabled):hover{background:#edf3f5;box-shadow:none}
.btn:focus-visible,.mode-btn:focus-visible,.tab:focus-visible{outline:3px solid #55816e;outline-offset:3px}
.btn:disabled{box-shadow:none;opacity:.55;cursor:default}.btn:not(:disabled):active{box-shadow:inset 0 1px 2px rgba(20,35,25,.08)}
.mode-btn,.tab{border-radius:9px;font-weight:500;border-color:#dce3d9}.mode-btn.on,.tab.on{background:#e9f1eb;color:#2e5940;border-color:#b5cdbb}.mode-btn.internal.on{background:#f8edd2;color:#71551a;border-color:#d9c58e}
.areal-demo-card{margin-bottom:16px}.areal-demo-card .row>div{flex:1;min-width:220px}.areal-demo-card p{max-width:820px;margin:6px 0 0}
@media(prefers-reduced-motion:reduce){.btn{transition:none}}
@media(max-width:640px){.msg,.msg.in-event{max-width:94%;padding:10px 12px}.feed{padding-inline:4px}.btn{white-space:normal;text-align:center}.btn.sm{white-space:nowrap}.areal-demo-card .btn{width:100%}}
@media(min-width:981px){.task-grid{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}}
@media(max-width:980px){.task-side{order:0}.task-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){
 .main{padding:14px}.top .brand{max-width:none;flex:1}.top nav{width:100%;flex-basis:100%}
 .task-filters{grid-template-columns:minmax(0,1fr)}.filter-dates{grid-column:1}
 .task-filters .f.compact{flex:none}.task-main .composer{padding:10px}
 .task-actions{width:100%}.task-head h1{font-size:21px}.feed-search{max-width:100%;width:100%}
}
