/* T-1196: библиотека состояний (ui_states.js) — общее оформление; цвета — токены страницы с запасными значениями */
.pos-state { display: block; }
.pos-state-loading { opacity: .75; }
.pos-state-ai_unavailable, .pos-state-source_error { color: var(--aiv2-warn, #f2c14e); }
.pos-state .pos-retry { margin-left: 8px; background: none; border: 1px solid currentColor; color: inherit; border-radius: 8px;
  padding: 2px 10px; font-size: 12px; cursor: pointer; }
.pos-state .pos-retry:disabled { opacity: .5; cursor: default; }
.pos-state .pos-do { margin-left: 8px; border-radius: 8px; padding: 6px 12px; font-size: 13px; border: 1px solid var(--border, #27272a);
  background: var(--surface-2, #232327); color: var(--text-muted, #9ca3af); opacity: .6; cursor: not-allowed; }
.pos-state .pos-missing { display: block; margin-top: 6px; font-size: 12px; color: var(--text-muted, #9ca3af); }
/* T-1197: нижнее меню — только телефон (≤ 640 px); на планшете и ПК его нет (десктоп без изменений) */
.pos-bnav { display: none; }
@media (max-width: 640px) {
  .pos-bnav { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    background: #0b0b0d; border-top: 1px solid #27272a; padding: 4px 4px calc(4px + env(safe-area-inset-bottom, 0px)); }
  .pos-bnav-btn { min-height: 48px; background: none; border: none; color: #9ca3af; font-size: 11px; cursor: pointer; }
  .pos-bnav-btn.active { color: #3ddbe0; }
  .pos-state .pos-retry, .pos-state .pos-do { min-height: 44px; }
}
