/* Вкладки тренера, апелляций и регламента */
.co-team{display:flex;flex-direction:column;gap:14px;margin-bottom:22px}
.co-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.co-heat{display:flex;flex-direction:column;gap:12px}
.co-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.co-head small{display:block;margin-top:2px}
.co-live{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.co-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-surface-2)}
.co-kpi span,.co-crew span{font-size:11px;color:var(--c-muted)}
.co-kpi b{font-size:20px;font-variant-numeric:tabular-nums}
.co-crew{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.co-crew>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--c-line);border-radius:12px}
.co-crew b{font-size:14px}
.co-actions{display:flex;justify-content:flex-end}
.ap-item{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.ap-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.ap-grid span{display:block;font-size:11px;color:var(--c-muted)}
.ap-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.ap-team summary{cursor:pointer;color:var(--c-muted);font-size:12px}
.ap-decision{margin:0;padding:8px 10px;border-left:3px solid var(--c-accent);background:var(--c-surface-2);border-radius:8px}
.ap-resolve{display:flex;gap:8px;flex-wrap:wrap}
.ap-resolve input{flex:1 1 220px}
.appeal-triple.armed{background:var(--c-danger,#e5484d);animation:appeal-pulse 1s ease-in-out infinite}
@keyframes appeal-pulse{50%{filter:brightness(1.18)}}
.rg-title{margin:18px 0 8px}
.rg-list{display:flex;flex-direction:column;gap:10px}
.rg-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.rg-link{display:block;margin-top:4px;color:var(--c-accent);overflow-wrap:anywhere}
.rg-actions{display:flex;gap:8px;flex:none}
.rg-form{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding:14px;border:1px dashed var(--c-line);border-radius:14px}
.rg-form-actions{display:flex;justify-content:flex-end;gap:8px}
.rg-form[hidden],#rg-number-wrap[hidden],#rg-url-wrap[hidden]{display:none}
@media (max-width:640px){.co-live{grid-template-columns:1fr 1fr}.co-crew{grid-template-columns:1fr}}
.co-filter{display:flex;flex-direction:column;gap:4px;margin-bottom:14px;max-width:420px}
.mh-appeal{display:flex;justify-content:flex-end;margin-top:8px}
.sec-views{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.sec-views .text-btn.active{background:var(--c-accent);color:var(--c-on-accent);border-color:transparent}
.sc-result{margin:10px 0;padding:12px 14px;border:1px solid var(--c-line);border-left:3px solid var(--c-accent);border-radius:12px;background:var(--c-surface-2)}
#sec-create{display:flex;flex-direction:column;gap:12px}
#sec-create[hidden],#sec-review[hidden],.sc-result[hidden]{display:none}
.sec-views[hidden]{display:none}

/* активные (залитые акцентом) кнопки не теряют текст при наведении: общее правило
   `.client-app button:not(.primary):hover` красило подпись в акцент прямо на акцентном фоне */
.client-app .sec-views .text-btn.active,
.client-app .sec-views .text-btn.active:hover,
.client-app .heats-filter button.active,
.client-app .heats-filter button.active:hover,
.client-app .heats-views button.active,
.client-app .heats-views button.active:hover{
  color:var(--c-on-accent);
  -webkit-text-fill-color:var(--c-on-accent);
}
.client-app .sec-views .text-btn.active:hover,
.client-app .heats-filter button.active:hover,
.client-app .heats-views button.active:hover{filter:brightness(1.07)}

/* карточка заявки секретаря: как в приложении — «Одобрить» зелёная, «Отказ» красная, обе тянутся на всю строку на телефоне */
.app-card-actions .primary.good-bg{color:#fff !important;-webkit-text-fill-color:#fff}
.app-card-actions .primary.good-bg:hover{filter:brightness(1.08)}
.app-card-actions .danger-btn{flex:0 0 auto}
@media (max-width:640px){
  .app-card-actions .primary,
  .app-card-actions .danger-btn,
  .app-card-actions .text-btn{flex:1 1 100%;min-height:44px}
}

/* «Отказ»/«Удалить»: красная кнопка сохраняет цвет и при наведении (общее правило hover красило подпись в акцент) */
.client-app .danger-btn,
.client-app .danger-btn:hover{color:#fff;-webkit-text-fill-color:#fff}
