﻿/* Companion styles for the legacy board bundle (no frontend sources).
   Sibling of kanban-v2/public/assets/kv2-extras-7.css — the v2 file is the
   canonical source of this design; keep the shared blocks in sync. */

/* — Шапка: фильтр исполнителя без подписи, сразу справа от заголовка — */
.k1x .board-header{align-items:center;column-gap:.75rem}
.k1x .header-actions{display:contents}
.k1x .header-filter span{display:none}
.k1x .header-filter{margin-right:auto}
@media (max-width: 767px){
  .k1x .board-header{flex-direction:row;flex-wrap:wrap}
  .k1x .header-filter{width:auto;flex:1 1 auto}
  .k1x .header-filter select{width:100%;min-width:8rem}
}

.kv2-hide{display:none !important}

/* — Оверлей (модалка на ПК, шторка на мобиле) — */
.kv2-back{position:fixed;inset:0;z-index:40;background:oklch(0 0 0/.5);display:flex;align-items:center;justify-content:center;padding:1rem}
.kv2-dialog{width:min(100%,640px);max-height:min(92vh,860px);overflow:auto;border:1px solid var(--border-strong);border-radius:var(--r-xl);background:var(--surface-2);box-shadow:var(--shadow-pop);padding:1.15rem 1.3rem;animation:popIn var(--dur) var(--ease-out)}
.kv2-handle{display:none}
@media (max-width: 767px){
  .kv2-back{align-items:flex-end;padding:0}
  .kv2-dialog{width:100%;max-width:none;max-height:92vh;border-radius:var(--r-xl) var(--r-xl) 0 0;border-bottom:0;padding:.4rem 1rem calc(1.15rem + env(safe-area-inset-bottom,0px));animation:sheetUp var(--dur) var(--ease-out)}
  .kv2-handle{display:block;width:2.5rem;height:4px;margin:.35rem auto .5rem;border-radius:999px;background:var(--border-strong)}
}

.kv2-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.35rem}
.kv2-head h2{margin:0;font-size:1.15rem}
.kv2-head-actions{display:flex;align-items:center;gap:.5rem}
.kv2-x{border:0;background:none;color:var(--faint);font-size:1.35rem;line-height:1;cursor:pointer;padding:.2rem .4rem;border-radius:var(--r-sm)}
.kv2-x:hover{color:var(--ink)}
.kv2-sub{font-size:.86rem;color:var(--muted);margin:.1rem 0 .6rem}
.kv2-sub b{color:var(--accent);font-weight:600}
.kv2-error{font-size:.86rem;color:var(--danger-ink);background:var(--danger-soft);border-radius:var(--r-sm);padding:.5rem .7rem;margin:.4rem 0}
.kv2-empty{font-size:.9rem;color:var(--faint);padding:1rem 0;text-align:center}

/* — Список пользователей — */
.kv2-row{display:flex;align-items:center;gap:.7rem;width:100%;padding:.65rem 0;border:0;border-top:1px solid var(--border);background:none;color:var(--ink);cursor:pointer;text-align:left;font:inherit}
.kv2-row:first-of-type{border-top:0}
.kv2-row:hover .kv2-name{color:var(--accent)}
.kv2-av{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-ring) inset;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;flex:none}
.kv2-av.kv2-av-dim{background:var(--card);box-shadow:none;color:var(--faint)}
.kv2-name{font-size:.95rem;font-weight:600;line-height:1.25;transition:color var(--dur-fast) var(--ease-out)}
.kv2-note{font-size:.78rem;color:var(--faint)}
.kv2-strip{display:grid;grid-template-columns:repeat(7,1.5rem);gap:.25rem;margin-left:auto;flex:none}
.kv2-cell{height:1.5rem;border-radius:.45rem;background:#0e0d0b;border:1px solid var(--border);color:var(--faint);font-size:.68rem;font-weight:600;display:flex;align-items:center;justify-content:center}
.kv2-cell.kv2-on{background:var(--accent-soft);border-color:transparent;box-shadow:0 0 0 1px var(--accent-ring) inset;color:var(--ink)}
.kv2-cell.kv2-today{box-shadow:0 0 0 1.5px var(--accent) inset;border-color:transparent;color:var(--ink)}
.kv2-cell.kv2-on.kv2-today{box-shadow:0 0 0 1.5px var(--accent) inset}
.kv2-chevron{color:var(--faint);flex:none;margin-left:.15rem}
@media (max-width: 480px){
  .kv2-strip{grid-template-columns:repeat(7,1.15rem)}
  .kv2-cell{height:1.15rem;font-size:0}
}

/* — Карточка пользователя — */
.kv2-backlink{display:inline-flex;align-items:center;gap:.25rem;border:0;background:none;color:var(--muted);font-size:.86rem;font-weight:600;cursor:pointer;padding:.2rem 0;margin-bottom:.4rem}
.kv2-backlink:hover{color:var(--ink)}
.kv2-person{display:flex;align-items:center;gap:.7rem;margin:.2rem 0 .8rem}
.kv2-person .kv2-av{width:42px;height:42px;font-size:1rem}
.kv2-person h3{margin:0;font-size:1.1rem}
.kv2-week{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin:.4rem 0 .5rem}
.kv2-day{border:1px solid var(--border);border-radius:var(--r);background:#0e0d0b;color:var(--faint);text-align:center;padding:.6rem 0;font-size:.82rem;font-weight:600;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.kv2-day.kv2-on{background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-ring) inset;border-color:transparent;color:var(--ink)}
.kv2-day.kv2-today{box-shadow:0 0 0 1.5px var(--accent) inset;border-color:transparent}

/* — Формы — */
.kv2-form{display:grid;gap:.7rem;margin-top:.5rem}
.kv2-field{display:grid;gap:.3rem}
.kv2-field span{font-size:.82rem;color:var(--muted);font-weight:500}
.kv2-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}
.kv2-actions .kv2-grow{margin-right:auto}
.kv2-danger{border:1px solid var(--border);background:var(--danger-soft);color:var(--danger-ink);border-radius:var(--r);padding:.66rem 1rem;font-size:.88rem;font-weight:600;cursor:pointer}

@media (prefers-reduced-motion: reduce){
  .kv2-dialog{animation:none}
  .kv2-day{transition:none}
}

/* — Приоритет при создании задачи — */
.kv-priority-toggle{width:100%;display:flex;align-items:center;gap:.85rem;padding:.78rem .85rem;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.kv-priority-toggle:hover{border-color:var(--border-strong);background:var(--card)}
.kv-priority-toggle.is-on{border-color:var(--accent-ring);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-ring) inset}
.kv-priority-copy{display:grid;gap:.18rem;min-width:0}
.kv-priority-copy strong{font-size:.92rem;font-weight:650}
.kv-priority-copy small{color:var(--muted);font-size:.78rem;line-height:1.35}
.kv-priority-switch{width:2.75rem;height:1.6rem;margin-left:auto;border:1px solid var(--border-strong);border-radius:999px;background:var(--card);position:relative;flex:none;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.kv-priority-switch i{position:absolute;top:3px;left:3px;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--faint);transition:left var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.kv-priority-toggle.is-on .kv-priority-switch{border-color:transparent;background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-ring) inset}
.kv-priority-toggle.is-on .kv-priority-switch i{left:calc(100% - 1.1rem - 3px);background:var(--accent)}

/* Приоритет заметен только пока задача активна; в «Готово» карточка обычная. */
.kv-priority-slot{order:-1}
.ticket-card.kv-priority-card{border-color:oklch(.8 .135 75 / .56);background:oklch(.32 .03 75);box-shadow:0 0 0 1px var(--accent-ring) inset,var(--shadow-card)}
.ticket-card.kv-priority-card:hover{border-color:var(--accent);background:oklch(.35 .035 75)}
.kv-priority-badge{justify-self:start;display:inline-flex;align-items:center;min-height:1.35rem;padding:.08rem .42rem;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.68rem;font-weight:750;line-height:1;letter-spacing:.01em}

@media (prefers-reduced-motion: reduce){
  .kv-priority-toggle,.kv-priority-switch,.kv-priority-switch i{transition:none}
}

/* — Отложенные задачи: кнопка в шапке — */
.kv2-deferred-btn{display:inline-flex;align-items:center;gap:.4rem}
.kv2-count{display:none;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:var(--card);color:var(--muted);font-size:.72rem;font-weight:750;line-height:1.25rem;text-align:center}
.kv2-deferred-btn.kv2-has-deferred .kv2-count{display:inline-block;background:var(--accent);color:var(--accent-ink)}

/* — Отложенные задачи: список в оверлее — */
.kv2-defrow{display:flex;align-items:center;gap:.7rem;padding:.7rem 0;border-top:1px solid var(--border)}
.kv2-defrow:first-of-type{border-top:0}
.kv2-defrow>span{min-width:0}
.kv2-why{font-size:.82rem;color:var(--muted);margin-top:.15rem}
.kv2-return{flex:none;margin-left:auto;border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface);color:var(--ink);font-size:.85rem;font-weight:600;padding:.5rem .9rem;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.kv2-return:hover{background:var(--accent-soft);border-color:transparent;box-shadow:0 0 0 1px var(--accent-ring) inset}
.kv2-return:disabled{opacity:.55;cursor:default}

/* — «Отложить» в панели удаления карточки — */
.kv2-defer-form{margin:.6rem 0 0}
.kv2-defer-form .kv2-sub{margin-top:0}
.kv2-defer-form .kv2-actions{margin-top:.8rem}

/* — Колонки: по 10 карточек, дальше «показать ещё» — */
.kv2-hidden-card{display:none !important}
.kv2-more{order:1;width:100%;border:1px solid var(--border-strong);border-radius:var(--r);background:var(--surface-2);color:var(--ink);font-size:.85rem;font-weight:600;padding:.7rem .8rem;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.kv2-more:hover{color:var(--ink);background:var(--card);border-color:var(--accent-ring)}

/* Переключатель порядка задач по дате нужен и на большом экране */
button[aria-label^="Сортировка по дате"]{display:inline-flex !important}
@media (min-width: 768px){
  button[aria-label^="Сортировка по дате"]{flex:0 0 auto !important}
}

/* — Запись голосового: уровень микрофона и предупреждение в строке «Идёт запись…» — */
.kv-mic-level{display:inline-flex;align-items:center;flex:none;width:3.4rem;height:6px;border-radius:999px;background:var(--border-strong);overflow:hidden}
.kv-mic-level-fill{display:block;width:0;height:100%;border-radius:inherit;background:var(--success);transition:width 90ms linear}
.kv-mic-warning{display:none;font-weight:600}
.recording-bar.kv-mic-quiet .kv-mic-level-fill{background:var(--danger)}
.recording-bar.kv-mic-quiet .kv-mic-warning{display:inline}

@media (prefers-reduced-motion: reduce){
  .kv2-return,.kv2-more{transition:none}
  .kv-mic-level-fill{transition:none}
}
