/* ===== Полировка нечатовых экранов (загружается после app.css) ===== */

/* фокус с клавиатуры: у всех интерактивных элементов есть видимое кольцо */
.btn:focus-visible,.icon-btn:focus-visible,.tab:focus-visible,.badge:focus-visible,.bk-chip:focus-visible,
.dropdown button:focus-visible,.ov-card:focus-visible,.ov-sec:focus-visible,.sup-chip:focus-visible,
.card:focus-visible,tr:focus-visible,a:focus-visible,summary:focus-visible,.bn-item:focus-visible,[role=button]:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px}
.btn.primary:focus-visible,.btn.danger-solid:focus-visible{outline-color:var(--accent);outline-offset:2px}

/* нативная кнопка выбора файла — в стиле приложения */
input[type=file]{padding:5px 8px;color:var(--muted);font-size:13px}
input[type=file]::file-selector-button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:5px 12px;margin-right:10px;cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--hover)}

/* даты и селекты: одинаковая высота и без выхода за поле */
input[type=date],input[type=time],input[type=datetime-local],input[type=month]{width:100%;min-width:0;max-width:100%}
.field>input,.field>select{max-width:100%}
select{text-overflow:ellipsis}
select,input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]){min-height:38px}

/* фильтры: одна высота у всех контролов, ничего не вылезает */
.filters{min-width:0;max-width:100%}
.filters .field{min-width:0}
.filters input:not([type=checkbox]),.filters select,.filters .btn{height:38px;min-height:38px;box-sizing:border-box}
.filters .btn{padding-top:0;padding-bottom:0}
.filters .check{min-height:38px;margin:0}
#f-order{min-width:40px;padding-left:10px;padding-right:10px}

/* модальные окна и вспомогательные подписи */
.modal-head h2,.modal-head h3,.modal-title{min-width:0;overflow-wrap:anywhere}
.modal-body>.small-note:first-child{margin-bottom:6px!important;font-weight:600}
.modal{max-width:100%}
.drop{overflow-wrap:anywhere}

/* вкладки админки — одна строка с прокруткой, а не три ряда */
#admin-view .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
#admin-view .tabs::-webkit-scrollbar{display:none}
#admin-view .tab{flex:none;white-space:nowrap}

@media (max-width:899px){
  /* цели нажатия >= 40px */
  .btn,.btn.small{min-height:40px}
  .icon-btn{min-width:40px;min-height:40px}
  .bk-chip{min-height:40px}
  .modal-x{min-width:40px;min-height:40px}
  .dropdown button{min-height:40px}
  .badge,.sup-chip,.gpr-x,.menu-btn{position:relative}
  .badge::after,.sup-chip::after,.gpr-x::after,.menu-btn::after{content:"";position:absolute;inset:-9px -3px}
  .cat-tab{min-height:40px}
  .sup-chip::after{inset:-12px -3px}
  .filters input:not([type=checkbox]),.filters select,.filters .btn{height:40px;min-height:40px}
  .filters .check{min-height:40px}
  #f-order{min-width:44px}
  .two{row-gap:0}
  .login-card .btn{min-height:44px}
  .seg button,.seg .btn{min-height:40px}
  /* вкладки настроек: слово не рвётся посреди */
  .prefs-tabs .tab{overflow-wrap:normal;word-break:normal;hyphens:manual;font-size:12px;padding:8px 6px;flex:1 1 auto;min-width:min-content}
}
@media (max-width:360px){
  .prefs-tabs .tab{font-size:11.5px;padding:8px 4px}
  .prefs-tabs .tab svg{display:none}
  .filters .field{flex:1 1 100%;max-width:100%}
}
.drop .btn{color:var(--text)}
.drop .btn.primary{color:#fff}
.seg button{white-space:nowrap}
@media (max-width:360px){.seg button{font-size:13px;padding-left:2px;padding-right:2px}}
.gpr-card.gpr-edit .gpr-c-head{margin-bottom:8px}
.rv .two.pages,.rv-pages{flex-wrap:wrap}
/* десктоп: фильтры одной компактной строкой, а не растянутыми на пол-ширины */
@media (min-width:900px){
  .filters .field{flex:0 1 165px;min-width:130px;max-width:none}
  .filters select{max-width:none}
}
@media (max-width:899px){
  .set-nav-item{flex:1 1 auto;min-width:min-content;min-height:44px}
  .set-nav-item .t-name{overflow-wrap:normal;word-break:normal}
  .set-nav-item .t-name{white-space:nowrap}
  .set-nav{overflow-x:auto;scrollbar-width:none}
}
@media (max-width:400px){.set-nav-item{font-size:10.5px;letter-spacing:-.3px;padding-left:3px;padding-right:3px}}
@media (max-width:899px){.set-nav-item:first-child .t-name{white-space:normal}}
