/* © 2026 VEYRO (ИП Макаров И. В.). appagent — проприетарная программа. Использование — по лицензионному договору https://appagent.ru/legal/offer/. Копирование и распространение без разрешения запрещены. */
/* Плитка «Согласование» (articles-consent.js): подход к утверждению, публикация сразу, окно отмены, график. Классы acs-, значения — только токены, размеры в rem.
   Телефон (390) первым: одна колонка, кнопка на всю ширину, касания не ниже --size-touch-min; с 48rem поля графика встают в ряд. */

.acs { display: grid; gap: var(--space-5); align-content: start; min-width: 0; color: var(--color-ink); }
.acs[aria-busy="true"] { cursor: progress; }
.acs [hidden] { display: none; }

/* ---------- Шапка и итог действия ---------- */
.acs-head { display: grid; gap: var(--space-2); min-width: 0; }
.acs-title { margin: 0; font: var(--text-h3-weight) var(--text-h3-size)/var(--text-h3-line) var(--text-h3-family); letter-spacing: var(--text-h3-track); }
.acs-title:focus-visible { outline: var(--size-focus-width) solid var(--color-focus); outline-offset: var(--size-focus-offset); border-radius: var(--radius-xs); }
.acs-lead { margin: 0; color: var(--color-ink2); font: var(--text-ui-weight) var(--text-ui-size)/var(--text-ui-line) var(--text-ui-family); overflow-wrap: anywhere; }
.acs-result { margin: 0; color: var(--color-ink2); font: var(--text-ui-weight) var(--text-ui-size)/var(--text-ui-line) var(--text-ui-family); overflow-wrap: anywhere; }
.acs-result:empty { display: none; }
.acs-result[data-tone="ok"] { color: var(--color-ok-text); }
.acs-result[data-tone="warn"] { color: var(--color-danger-text); }

/* ---------- Форма: блоки разделены тонкой линией, без рамок ---------- */
.acs-body, .acs-form { display: grid; gap: var(--space-5); min-width: 0; }
.acs-set { display: grid; gap: var(--space-3); align-content: start; margin: 0; padding: 0 0 var(--space-5); border: 0; border-bottom: 1px solid var(--color-line); min-width: 0; max-width: 100%; }
.acs-set--plain { padding-bottom: var(--space-5); }
.acs-legend { padding: 0; margin-bottom: var(--space-1); color: var(--color-ink); font: var(--text-ui-strong-weight) var(--text-ui-strong-size)/var(--text-ui-strong-line) var(--text-ui-strong-family); }
.acs-hint { margin: 0; color: var(--color-ink2); font: var(--text-caption-weight) var(--text-caption-size)/var(--text-caption-line) var(--font-sans); overflow-wrap: anywhere; }
.acs-note { margin: 0; font: var(--text-caption-weight) var(--text-caption-size)/var(--text-caption-line) var(--font-sans); overflow-wrap: anywhere; }
.acs-note:empty { display: none; }
.acs-note[data-tone="warn"] { color: var(--color-warn-text); }

/* Подход к утверждению: сегменты на всю ширину на телефоне */
.acs-sw { width: 100%; }
.acs-sw .ui-switch__b { min-height: var(--size-touch-min); }

/* Флажки: строка не ниже 44 px, подпись переносится */
.acs-check { display: grid; gap: var(--space-1); min-width: 0; }
.acs-opt { display: flex; align-items: center; gap: var(--space-3); min-width: 0; min-height: var(--size-touch-min); padding-inline: var(--space-3); border-radius: var(--radius-sm); color: var(--color-ink); cursor: pointer; overflow-wrap: anywhere; font: var(--text-ui-weight) var(--text-ui-size)/var(--text-ui-line) var(--font-sans); }
.acs-opt:hover { background: var(--surface-inner-hover); }
.acs-opt input[type="checkbox"] { flex: none; width: 1.25rem; height: 1.25rem; margin: 0; accent-color: var(--color-acc); cursor: pointer; }
.acs-opt input:focus-visible { outline: var(--size-focus-width) solid var(--color-focus); outline-offset: var(--size-focus-offset); }
.acs-check > .acs-hint { padding-inline: var(--space-3); }

/* Поля: высота касания, моноширинные цифры в часах и времени */
.acs-f { min-width: 0; }
.acs-f :is(input, select) { min-height: var(--size-touch-min); width: 100%; max-width: 100%; box-sizing: border-box; }
.acs-f--hours { max-width: 100%; }
.acs-f--hours input, .acs-f input[type="time"] { font-family: var(--font-num); font-variant-numeric: tabular-nums; }
.acs-grid { display: grid; gap: var(--space-4); min-width: 0; }

/* Дни недели: два столбца на телефоне */
.acs-days { display: grid; gap: var(--space-2); margin: 0; padding: 0; border: 0; min-width: 0; }
.acs-days > legend { padding: 0; margin-bottom: var(--space-1); }
.acs-daylist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1) var(--space-2); min-width: 0; }
.acs-day { padding-inline: var(--space-2); }

/* Единственная оранжевая кнопка */
.acs-acts { display: grid; min-width: 0; }
.acs-save { width: 100%; min-height: var(--size-touch-min); white-space: normal; text-align: center; }
.acs .btn[aria-disabled="true"] { cursor: not-allowed; }
.acs .btn:focus-visible { outline: var(--size-focus-width) solid var(--color-focus); outline-offset: var(--size-focus-offset); }

/* ---------- Загрузка, ошибка ---------- */
.acs-state { display: grid; gap: var(--space-3); justify-items: start; margin: 0; color: var(--color-ink2); font: var(--text-ui-weight) var(--text-ui-size)/var(--text-ui-line) var(--text-ui-family); }
.acs-err { margin: 0; color: var(--color-danger-text); overflow-wrap: anywhere; }

/* ---------- Окно подтверждения ослабления ---------- */
.acs-ask { display: grid; gap: var(--space-3); min-width: 0; }
.acs-ask__lead { margin: 0; font-weight: var(--weight-medium); }
.acs-ask__list { display: grid; gap: var(--space-2); margin: 0; padding-inline-start: var(--space-5); color: var(--color-ink2); font: var(--text-ui-weight) var(--text-ui-size)/var(--text-ui-line) var(--font-sans); overflow-wrap: anywhere; }

/* ---------- Планшет и ширина ---------- */
@media (min-width: 48rem) {
  .acs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .acs-f--wide { grid-column: 1 / -1; }
  .acs-f--hours { max-width: 16rem; }
  .acs-sw { width: auto; justify-self: start; max-width: 100%; }
  .acs-daylist { grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); }
  .acs-save { width: auto; justify-self: start; }
}

@media (min-width: 90rem) {
  .acs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .acs-f--wide { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .acs .btn, .acs-opt { transition: none; }
}
