/* Connected Community — эскалации, шаги агента в чате CoWork, заявка в «Моём отпуске», кто отметил «нравится», отметки через @ — новое дописывать сюда или новым файлом в конец.
   Часть оформления портала. Файлы подключаются в templates/index.html по порядку номеров: поздние правила перебивают ранние. */
/* ===== эскалации (12.10.2026): обращения карточками, история, сводка по подразделениям ===== */
.esc-tabs{margin:0 0 18px;}
.esc-list{display:grid;gap:14px;max-width:860px;}
.esc-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;min-width:0;}
.esc-card.hold{border-left:3px solid var(--orange);}
.esc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.esc-title{font:800 16px/1.35 'Golos Text',sans-serif;color:var(--ink);min-width:0;overflow-wrap:anywhere;}
.esc-chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;flex:none;max-width:50%;}
.esc-meta{margin-top:4px;font-size:12.5px;color:var(--ink-soft);overflow-wrap:anywhere;}
.esc-who{color:var(--ink-soft);font-weight:600;text-decoration:none;}
.esc-who:hover{color:var(--orange);}
.esc-text{margin-top:10px;font-size:14px;line-height:1.55;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;}
.esc-now{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;color:var(--ink-soft);}
.esc-now svg,.esc-now .ico{width:15px;height:15px;flex:none;}
.esc-now b{color:var(--ink);font-weight:700;}
.esc-res{margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--orange-tint);border:1px solid var(--orange-soft);}
.esc-res-title{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--orange);margin-bottom:4px;}
.esc-res-text{font-size:14px;line-height:1.55;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;}
.esc-log-btn{margin-top:12px;padding:0;border:0;background:none;font:600 12.5px 'Roboto',sans-serif;color:var(--ink-soft);cursor:pointer;}
.esc-log-btn:hover{color:var(--orange);}
.esc-log{margin-top:8px;padding-left:14px;border-left:2px solid var(--border);display:grid;gap:10px;}
.esc-log-main{font-size:13px;color:var(--ink);overflow-wrap:anywhere;}
.esc-log-main b{font-weight:700;}
.esc-log-meta{font-size:12px;color:var(--ink-soft);}
.esc-log-text{margin-top:3px;font-size:13px;line-height:1.5;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;}
.esc-actions{flex-wrap:wrap;gap:8px;margin-top:14px;align-items:center;}
.esc-actions .esc-del{margin-left:auto;}
.esc-act-title{font:700 14.5px/1.4 'Golos Text',sans-serif;color:var(--ink);margin-bottom:12px;overflow-wrap:anywhere;}
.esc-sum{display:grid;gap:8px;max-width:860px;}
.esc-sum-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,112px);align-items:center;gap:8px;padding:12px 16px;background:var(--surface);
  border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:border-color .15s;}
.esc-sum-row:hover{border-color:var(--orange);}
.esc-sum-row.total{cursor:default;background:var(--bg-soft);}
.esc-sum-row.total:hover{border-color:var(--border);}
.esc-sum-name{font:700 14.5px/1.3 'Golos Text',sans-serif;color:var(--ink);min-width:0;overflow-wrap:anywhere;}
.esc-sum-n{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;}
.esc-sum-n span{font-size:11px;color:var(--ink-soft);line-height:1.2;}
.esc-sum-n b{font:800 18px/1 'Golos Text',sans-serif;color:var(--ink);}
.esc-sum-n.late b{color:var(--danger);}
@media (max-width:700px){
  .esc-head{flex-direction:column;gap:8px;}
  .esc-chips{justify-content:flex-start;max-width:none;}
  .esc-actions .btn{flex:1 1 auto;}
  .esc-actions .esc-del{margin-left:0;}
  .esc-sum-row{grid-template-columns:repeat(4,minmax(0,1fr));}
  .esc-sum-name{grid-column:1/-1;}
}

/* заголовок списка сразу после пустого блока не прилипает к нему (12.10.2026) */
.empty + .req-list-title{margin-top:24px;}

/* ===== CoWork: шаги работы агента под сообщением в чате (13.10.2026) ===== */
.cw-steps{display:grid;gap:6px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface);min-width:min(300px,100%);}
.cw-step{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink-soft);}
.cw-step svg,.cw-step .ico{width:15px;height:15px;flex:none;color:var(--orange);}
.cw-step-dot{width:9px;height:9px;margin:0 3px;border-radius:50%;border:2px solid var(--border);flex:none;box-sizing:border-box;}
.cw-step.done{color:var(--ink);}
.cw-step.now{color:var(--ink);font-weight:700;}
.cw-step.now .cw-step-dot{border-color:var(--orange);background:var(--orange);animation:cwPulse 1.2s ease-in-out infinite;}
.cw-step-open{margin-top:6px;justify-self:start;}
@keyframes cwPulse{0%,100%{opacity:1;}50%{opacity:.35;}}
@media (prefers-reduced-motion:reduce){.cw-step.now .cw-step-dot{animation:none;}}

/* ---- Мой отпуск: заявка в узкой колонке не плывёт (13.10.2026). Название, статус и даты не помещались в одну строку:
   название сжималось в узкий столбик. Теперь текст занимает строку, статус и даты переносятся под него. ---- */
.vac-cols .req-row{flex-wrap:wrap;row-gap:6px;}
.vac-cols .req-row-main{flex:1 1 calc(100% - 50px);}
.vac-cols .req-row-date{display:block;margin-left:auto;text-align:right;}

/* ===== новости: кто отметил «нравится» (13.10.2026) ===== */
.news-likers{display:flex;align-items:flex-start;gap:7px;margin-top:9px;font-size:13px;line-height:1.45;color:var(--ink-soft);overflow-wrap:anywhere;}
.news-likers svg,.news-likers .ico{width:14px;height:14px;flex:none;margin-top:2px;color:var(--orange);fill:var(--orange);}
.news-likers-more{padding:0;border:0;background:none;font:inherit;font-weight:700;color:var(--orange);cursor:pointer;}
.news-likers-more:hover{text-decoration:underline;}

/* ===== комментарии: отметка сотрудника через @ (13.10.2026) ===== */
.mention{color:var(--orange);font-weight:700;text-decoration:none;}
.mention:hover{text-decoration:underline;}
.news-c-form{position:relative;}
.mention-box{position:absolute;left:0;bottom:calc(100% + 6px);z-index:30;width:min(340px,100%);padding:6px;border:1px solid var(--border);border-radius:12px;
  background:var(--surface);box-shadow:0 10px 28px rgba(0,0,0,.16);display:grid;gap:2px;}
.mention-box[hidden]{display:none;}
.mention-opt{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 10px;border:0;border-radius:8px;background:none;text-align:left;cursor:pointer;color:var(--ink);min-width:0;}
.mention-opt b{font:700 13.5px/1.25 'Golos Text',sans-serif;}
.mention-opt span{font-size:12px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}
.mention-opt.on,.mention-opt:hover{background:var(--orange-tint);}
.news-c.mention-hit{background:var(--orange-tint);border-radius:10px;transition:background .4s;}

/* ===== исправление заявки автором (14.10.2026): уже приложенные файлы над полем выбора ===== */
.file-kept{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 8px;font-size:13.5px;}
.file-kept-row{display:inline-flex;align-items:center;gap:6px;}
.file-kept-row a{color:var(--orange);font-weight:700;}
.file-kept-row .btn.text{padding:0;font-size:12.5px;color:var(--ink-soft);}
.file-picked{flex-wrap:wrap;}
.file-picked-list{display:flex;flex-wrap:wrap;gap:4px 14px;width:100%;font-weight:500;}
.file-picked-list .file-kept-row b{font-weight:600;color:var(--ink);overflow-wrap:anywhere;}
