/* Правки видимости и доступности из аудита 13.10 (supergoal C3/C4/C5/C6/C7). Отдельный файл: style.css и app.js
   стоят на бюджете размера (scripts/check-file-size.js), поэтому новое правило живёт здесь и подключено последним —
   оно перекрывает style.css при равной специфичности. Токены цвета не дублируются: берутся из :root в style.css. */

/* ===== C7-01. Полоса статуса сохранения (platform/save-status-strip.js) =====
   Статус «Нет связи · N трат не отправлены» и «Ошибка сохранения» лежал в закрытом меню «⋯». Полоса липнет к верху,
   чтобы быть видной при прокрутке списка; в покое прячется так, чтобы живые регионы остались в дереве доступности. */
.save-strip{position:sticky;top:0;z-index:12;margin:0 0 10px;padding:8px 12px;border:1px solid transparent;border-radius:8px;font:600 .76rem/1.4 Manrope,ui-sans-serif,system-ui,sans-serif;overflow-wrap:anywhere}
.save-strip>span{display:block}
.save-strip[data-state="notice"]{background:#fff8df;border-color:#c79b4a;color:#604719}
.save-strip[data-state="alert"]{background:#fbe9e6;border-color:#c98b82;color:#7a2a1e}
.save-strip[data-state="idle"]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
/* Экран (Кошельки, Расчёты подробно…) закрывает страницу целиком, и полоса под шапкой осталась бы под ним: на экране она
   встаёт сразу под его шапкой (52 px), ниже шторки (z-index 50), которая закрывает всё и несёт свои сообщения. */
body.screen-open .save-strip:not([data-state="idle"]){position:fixed;top:56px;left:12px;right:12px;z-index:45}

/* ===== C3-07 / C7-13. Подпись «Категория» не рвётся посреди слова =====
   .receipt-editor наследует overflow-wrap:anywhere (чтобы длинные названия позиций не растягивали шторку), и безымянный
   flex-элемент с текстом подписи мог сжаться до одной буквы, пока .ui-select (width:100%) занимал строку: «Категор/ия».
   Подпись теперь не переносится внутри слова, а поле встаёт под неё, если рядом не помещается. Названия позиций
   переносятся как раньше: правило касается только поля категории. Тот же механизм у «Кто платил» в фильтре трат. */
.receipt-editor .receipt-category-field{flex-wrap:wrap;overflow-wrap:normal;word-break:normal}
.receipt-editor .receipt-category-field .ui-select{flex:1 1 7.5rem;width:auto;min-width:0}
.expense-payer-filter{white-space:nowrap}
.receipt-reconcile-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.receipt-reconcile-actions button{flex:1 1 100%;min-width:0;min-height:44px;white-space:normal;overflow-wrap:anywhere}

/* ===== C6-02 / C7-08. Зона нажатия 44×44 без изменения вида =====
   Видимая кнопка остаётся прежней, вокруг неё — невидимый слой минимум 44×44 по центру. Только там, где вокруг есть
   место: слой не заходит на соседние кнопки (зазор ≥ 6 px). Строки легенды колец стоят вплотную, поэтому им
   поднимается сама высота (ниже). Остальные цели 24–43 px — в отчёте аудита, не здесь. */
#sheet-close,#balance-toggle,.wallet-op,.wallet-manage,.wallets-more,.wallet-more,.sheet-people-all,.debt-toggle,.delete,.event-chart-toggle button,.expense-category-plan-action,.expense-category-item-action{position:relative}
#sheet-close::after,#balance-toggle::after,.wallet-op::after,.wallet-manage::after,.wallets-more::after,.wallet-more::after,.sheet-people-all::after,.debt-toggle::after,.delete::after,.event-chart-toggle button::after,.expense-category-plan-action::after,.expense-category-item-action::after{content:'';position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
/* Строка легенды кольца была 19–20 px при зазоре 6: слою вокруг не за что зацепиться. Высота 44, зазор уходит в отрицательные поля. */
@media(max-width:720px),(pointer:coarse){
  .legend-row[role=button]{min-height:44px;margin-block:-3px}
}

/* ===== C7-14 / C7-23. Строки курсов в «Параметрах» ведут себя как соседние поля настроек =====
   style.css (.settings>label) охватывает только прямых потомков, а строки курсов лежат во вложенном #rate-rows и
   оставались inline-подписью 16 px с полем 192 px. Хранимое значение курса не меняется и не округляется. */
.settings #rate-rows>label{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;min-width:0;margin:11px 0;font-size:.75rem}
.settings #rate-rows :is(input,select){width:min(168px,100%);min-width:0;text-align:right;border-bottom:1px solid var(--line);font-family:'DM Mono','Manrope',ui-sans-serif,system-ui,sans-serif;font-size:.78rem;text-overflow:ellipsis}

/* ===== «К переводу» на Обзоре: кнопки копирования не сжимают имена =====
   Строка перевода — flex-строка из основного блока (имена, сумма, формула) и блока .personal-finance-copy-actions с
   flex-shrink:0. Когда у получателя есть телефон и банк, кнопки «телефон» и «сумма» занимали всю ширину, а основной блок
   сжимался до 0: «Илья → Вася» ломалось по буквам, формула шла столбиком. Теперь кнопки переносятся под основной блок. */
.personal-finance-flow{flex-wrap:wrap}
.personal-finance-flow>div{flex:1 1 100%;min-width:0}
.personal-finance-copy-actions{flex:1 1 100%;min-width:0}

/* Категории читаются сразу, а подробности трат остаются отдельной тач-целью. */
.settlement-category-summary .settlement-compact-line{overflow-x:visible;overflow-wrap:anywhere}
.settlement-spend-details{min-width:0;border-top:1px solid var(--line)}
.settlement-spend-details>summary{min-height:40px;display:flex;align-items:center;cursor:pointer;color:var(--muted);font-size:.74rem}
.debt-plan-note{font-size:.7rem;overflow-wrap:anywhere}
/* Подписи различают два поля для копирования; перенос блока задан выше. */
.personal-finance-copy-actions .copy-value i{font:500 10px 'Manrope',sans-serif;color:var(--muted);font-style:normal}
