/*
  Общие элементы интерфейса, подключаются на всех страницах после стилей страницы (см. base.html),
  поэтому одинаково работают везде и не требуют правок отдельных css-файлов страниц.
*/

/* Подраздел внутри блока (например «Сброс статусов» внутри «Сменные задания» — они работают в паре) */
.block-sub { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--c-line); }
.block-sub > .block-head .block-title { font-size: 13px; }

/* ------------------------------------------------------------------------------------------------
   Панель управления страницы.
   Правило: кнопки управления в разделе всегда ниже блока показателей, в одну строку, прижаты вправо
   (слева могут стоять поиск и фильтры). Размер всех элементов панели одинаковый и задаётся здесь,
   поэтому не зависит от того, какой класс кнопки использует страница; стиль — по назначению:
     .primary-btn   — главное действие (создать, сохранить), синяя;
     .secondary-btn / .toolbar-btn — обычное действие (печать, импорт, период), белая с рамкой;
     .ai-btn        — действия ИИ, фиолетовая;
     .danger-btn    — удаление, красная.
   ------------------------------------------------------------------------------------------------ */
.toolbar, .page-actions { display: flex; align-items: center; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.page-actions { justify-content: flex-end; }
.toolbar-spacer { flex-grow: 1; }
.toolbar-hint { font-size: 11px; color: var(--c-faint); max-width: 260px; }
.toolbar > *, .page-actions > * { flex-shrink: 0; }

.toolbar > select.toolbar-btn { padding-right: 28px; }
.toolbar > input.toolbar-btn { padding: 0 10px; }
.toolbar > .board-search { width: 300px; height: var(--h-ctl); }
.toolbar > input[type="search"] { height: var(--h-ctl); box-sizing: border-box; }

/* Подсказка в панели управления на узких экранах скрывается, чтобы кнопки оставались в одной строке */
@media (max-width: 1760px) { .toolbar > .toolbar-hint { display: none; } }

/* ------------------------------------------------------------------------------------------------
   Режим «только просмотр»: у пользователя есть право видеть раздел, но нет права менять данные
   (см. crm/services/access.py). Класс на <html> ставит base_app.html; сервер при этом всё равно
   отклоняет изменяющие запросы, скрытие кнопок — только удобство.
   ------------------------------------------------------------------------------------------------ */
.ro-note { margin: 0 0 14px; padding: 8px 12px; background: var(--c-soft); border: 1px solid var(--c-line); border-radius: var(--r-lg); color: var(--c-ink-3); font-size: 12px; }
html.crm-ro-storekeeper [aria-label="Оприходовать материал"], html.crm-ro-storekeeper [aria-label="Добавить позицию на склад"],
html.crm-ro-storekeeper .icon-btn, html.crm-ro-storekeeper .issue-btn, html.crm-ro-storekeeper .sk-edit,
html.crm-ro-master #replan-btn, html.crm-ro-master #ai-generate-btn, html.crm-ro-master #task-modal-fact,
html.crm-ro-master #sched-import-btn, html.crm-ro-master .row-add-btn, html.crm-ro-master .toolbar > .primary-btn { display: none !important; }
html.crm-ro-master .gantt-bar[data-id] { cursor: default; }

/* Список групп пользователя: показывает 8 строк, остальные — прокруткой */
#user-groups { min-height: 176px; }

/* ------------------------------------------------------------------------------------------------
   Клиент (группа «Клиент»): «Доска заказов» только для чтения — прячем всё, что создаёт и правит.
   Блокировку полей внутри карточки заказа делает readonly.js (атрибут data-ro-lock).
   ------------------------------------------------------------------------------------------------ */
html.crm-ro-board .toolbar > .primary-btn, html.crm-ro-board #import-1c-btn, html.crm-ro-board #pv-print-btn, html.crm-ro-board #new-order-btn,
html.crm-ro-board .add-chip-btn,
html.crm-ro-board [data-ro-lock] #order-save-btn, html.crm-ro-board [data-ro-lock] #order-number-edit-btn, html.crm-ro-board [data-ro-lock] #op-clear-btn,
html.crm-ro-board [data-ro-lock] .op-tile-remove, html.crm-ro-board [data-ro-lock] .op-add-tile, html.crm-ro-board [data-ro-lock] .primary-btn,
html.crm-ro-board [data-ro-lock] .text-icon-btn[aria-label^="Удалить"] { display: none !important; }

/* Окно учётки клиента (РМ Менеджер → «Клиенты») */
.ca-modal { position: fixed; inset: 0; background: rgba(17, 24, 39, .45); display: flex; align-items: center; justify-content: center; z-index: 1000; }
body:has(.ca-modal:not([hidden])) .aiw-fab { display: none; }     /* кнопка помощника (справа внизу) не должна перекрывать кнопки открытого окна */
.ca-dialog { background: var(--c-surface); border-radius: var(--r-xl); width: 460px; max-width: calc(100vw - 32px); max-height: calc(100vh - 40px); overflow: auto; padding: 22px 24px; box-shadow: 0 20px 50px rgba(0, 0, 0, .25); }
.ca-dialog h2 { margin: 0 0 14px; font-size: 17px; }
.ca-row { margin-bottom: 12px; }
.ca-row label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 4px; color: var(--c-ink-2); }
.ca-row input { width: 100%; }
.ca-row input:disabled { background: var(--c-soft); color: var(--c-muted); }
.ca-hint { font-weight: 400; color: var(--c-faint); }
.ca-error { background: var(--c-danger-bg); color: var(--c-danger-dark); border: 1px solid var(--c-danger-line); border-radius: var(--r-md); padding: 8px 10px; font-size: 12px; margin-bottom: 12px; }
.ca-footer { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; }
.ca-pill { display: inline-block; padding: 2px 9px; border-radius: var(--r-pill); font-size: 11px; font-weight: 600; }
.ca-info { background: var(--c-warn-bg); border: 1px solid var(--c-warn-line); color: var(--c-warn-ink); border-radius: var(--r-md); padding: 8px 10px; font-size: 12px; margin-bottom: 12px; }
/* «Удалённый» менеджером клиент: зачёркнут и серый (полностью удаляет только администратор) */
tr.ca-deleted td { color: var(--c-faint); text-decoration: line-through; background: var(--c-subtle); }
tr.ca-deleted td:last-child, tr.ca-deleted .ca-pill { text-decoration: none; }

/* Единое правило закрытых строк таблиц: вся строка серая и зачёркнутая, кроме колонок «Результат / выполнено» и кнопок (td.col-keep) */
table tr.sp-closed td, table tr.ship-done td, table tr.wt-donerow td, table tr.wf-marked td, table tr.ca-deleted td, table tr.row-done td {
  color: var(--c-faint); text-decoration: line-through; }
table tr.sp-closed td.col-keep, table tr.ship-done td.col-keep, table tr.wt-donerow td.col-keep, table tr.wf-marked td.col-keep, table tr.ca-deleted td.col-keep, table tr.row-done td.col-keep {
  text-decoration: none; }
