/* Пакеты работ проекта — стили модуля вкладки «Пакеты».
 *
 * Подключается рядом с cabinet-projects.css и только дополняет его: каркас
 * (таблицы, формы, модалки, плашки) остаётся на классах pw-*, здесь всё своё —
 * префикс pwb-*. Так модуль пакетов можно менять, не задевая раздел.
 *
 * Темы: ни одного литерального фона каркаса — только переменные кабинета
 * (--card, --border, --bg, --hover, --text, --muted, --accent, --danger,
 * --radius). Поэтому светлая и тёмная темы получаются сами.
 *
 * Вид: это пульт координатора, а не «карточка отчёта» — плотные строки задач,
 * одна плашка превышения бюджета, честный блок отказа с числами.
 */

/* ── Список: пакет открывается кнопкой, ссылок-обманок нет ────────────── */
.pwb-open {
    display: block;
    max-width: 320px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--accent);
    font: inherit;
    text-align: left;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pwb-open:hover { text-decoration: underline; }
.pwb-id { color: var(--muted); margin-top: 2px; }

/* ── Состав задач: сколько всего и в каких статусах ───────────────────── */
.pwb-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.pwb-chip {
    display: inline-block;
    padding: 0 6px;
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 11px;
    color: var(--muted);
    white-space: nowrap;
}
.pwb-chip-planned { color: var(--text); border-color: var(--border); }
.pwb-chip-running { color: var(--accent); border-color: var(--accent); }
.pwb-chip-done { color: #1d7a4b; border-color: rgba(38, 145, 90, .35); }
.pwb-chip-failed, .pwb-chip-cancelled { color: #b23b36; border-color: rgba(200, 60, 55, .35); }

/* ── Превышение бюджета: плашка, а не только цвет ─────────────────────── */
.pwb-over {
    display: inline-block;
    margin-top: 4px;
    padding: 1px 8px;
    border: 1px solid rgba(200, 60, 55, .5);
    border-radius: var(--radius);
    background: rgba(200, 60, 55, .08);
    color: #b23b36;
    font-size: 11px;
    white-space: nowrap;
}
.pwb-warn {
    margin: 10px 0;
    padding: 8px 10px;
    border: 1px solid rgba(200, 60, 55, .35);
    border-radius: var(--radius);
    background: rgba(200, 60, 55, .06);
    font-size: 12px;
}
.pwb-err { color: #b23b36; font-size: 12px; }
.pwb-prompt { max-width: 380px; white-space: pre-wrap; word-break: break-word; }

/* ── Плашки статусов задачи/пакета, которых не знал каркас ────────────── */
.pw-st-planned { background: rgba(190, 140, 20, .10); border-color: rgba(190, 140, 20, .35); color: #8a6a12; }
.pw-st-failed { background: rgba(200, 60, 55, .10); border-color: rgba(200, 60, 55, .32); color: #b23b36; }

/* ── Карточка пакета ──────────────────────────────────────────────────── */
.pwb-card-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pwb-card-title { font-size: 15px; font-weight: 600; }
.pwb-card-counts { margin: 8px 0 0; }
.pwb-actions { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0; }

/* ── Форма пакета: строки заданий ─────────────────────────────────────── */
.pwb-rows-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 12px;
    color: var(--muted);
}
.pwb-rows-head > button { margin-left: auto; }
.pwb-rows { display: grid; gap: 8px; }
.pwb-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg);
}
.pwb-row-num {
    min-width: 20px;
    padding-top: 6px;
    color: var(--muted);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    text-align: right;
}
.pwb-row-body { flex: 1 1 auto; min-width: 0; display: grid; gap: 6px; }
.pwb-row-body .textarea { width: 100%; }
.pwb-row-two { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pwb-row-two .select { width: 100%; }

/* ── Отказ координатора: причина и числа прямо в форме ────────────────── */
.pwb-refusal {
    margin-bottom: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(200, 60, 55, .45);
    border-radius: var(--radius);
    background: rgba(200, 60, 55, .07);
}
.pwb-refusal-t { font-size: 13px; font-weight: 600; color: #b23b36; }
.pwb-refusal-m { margin-top: 4px; font-size: 12px; color: var(--text); }

/* ── Сводка: JSON как есть ────────────────────────────────────────────── */
.pwb-json {
    margin: 0;
    padding: 10px 12px;
    max-height: 320px;
    overflow: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg);
    color: var(--text);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
    line-height: 1.5;
}

/* ── Узкие экраны: строка задания остаётся читаемой ───────────────────── */
@media (max-width: 760px) {
    .pwb-row { flex-wrap: wrap; }
    .pwb-row-two { grid-template-columns: 1fr; }
    .pwb-open { max-width: 200px; }
}
