/* mobile_targets.css — цели касания под пальцем не меньше 44 точек (смоук телефона и iPad 19.10).
   Прежний порог был 40 (аудит 02.10), у админки и «Вкуса» — 44; смоук нашёл 14–40 по всему
   приложению: шапка, плеер вбок, альбомы, поиск, древо, Сомелье, чат ИИ, Настройки, админка.
   Кнопки и поля с подписью растут в высоту; круглые значки внутри строк остаются прежнего размера —
   вокруг них невидимая площадка ::after (строки и плеер не раздвигаются). Подключён последним,
   вне @layer: бьёт и слоёные правила, и прежние 40. */
@media (pointer: coarse) {
    /* ── Кнопки, вкладки, поля ── */
    .btn { min-height: 44px; min-width: 44px; }
    .detail-hero .actions .btn, .vmodal-actions .btn { min-height: 44px; }   /* там 40 весом в три класса (vault.css) */
    a.btn { display: inline-flex; align-items: center; justify-content: center; }
    .tree-seg-btn, .tree-chip, .ti-kchip, .ti-chip, .lang-seg-btn, #settings-tabs .tab, .m-search-kinds button,
    .browse-seg-btn, .vai-tab, .seg button, .lib-tab, .ai-quick-btn { min-height: 44px; }
    select:not([multiple]):not([size]),
    input:is([type="text"], [type="search"], [type="email"], [type="password"], [type="number"], [type="url"], :not([type])) { min-height: 44px; }
    .m-back-btn, .ai-mobile-back, .ai-mobile-cam,
    .ai-send-btn, .ai-mic-btn, .ai-attach-btn { min-width: 44px; min-height: 44px; }
    .np-act-btn { min-width: 44px; }
    .detail-hero .view-switch .view-btn { min-height: 44px; min-width: 44px; }
    a.adm-more { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
    .dl-bg-open { min-height: 44px; }
    .adm-find-g a { min-height: 44px; box-sizing: border-box; }       /* строки выдачи поиска админки: 39 */
    .adm-find-box { height: 44px; }                                     /* поле поиска админки вбок: 36 */
    .adm-find-box input { height: 42px; }
    /* «Позже»/«Готово» знакомства: 33 — мобильный отступ vault.css перебивает базовое правило ниже по файлу (смоук 23.10). */
    .onb-link { min-height: 44px; }

    /* ── Флажки: нажимается вся подпись ── */
    .lib-bulk-all, #np-ly-tr-wrap, .aa-ev-check, .tree-check, label:has(> #learning-toggle), label:has(> #pool-mode-toggle),
    .prefs-row > label:has(> input[type="checkbox"]) { display: flex; align-items: center; gap: 8px; min-height: 44px; }
    #np-ly-tr-wrap { display: inline-flex; }

    /* ── Раскрывашки ── */
    .studio-help-sec > summary, .dlerr-raw > summary, .tree-more-people > summary, .tree-filters > summary {
        display: flex; align-items: center; min-height: 44px;
    }
    .pop-legend a, #tree-card a { display: inline-flex; align-items: center; min-height: 44px; }

    /* ── Невидимые площадки: размер прежний, палец попадает в 44 ──
       Отступ ::after считается от внутренней кромки рамки: у кнопок с рамкой 1 — на точку больше.
       Кнопкам, которые уже absolute (на обложке, в поле), position не трогаем. */
    #m-dl-chip, .pn-who, .ap-rename, #adm-find-x, .ai-playlist-card .apt-more { position: relative; }
    /* «×» поля поиска на телефоне и iPad стоя: без своего position площадка ::after растягивалась на всю липкую
       полосу .m-search-bar — касание поля, чтобы дописать запрос, стирало его (смоук 24.10). */
    .m-search-bar .search-clear { position: relative; }
    #m-dl-chip::after, .player-bar .pb-play::after, .pn-who::after, .ap-rename::after, .aa-switch::after, #adm-find-x::after,
    .ai-playlist-card .apt-cover .apt-play::after, .ai-playlist-card .apt-more::after, .cover > .dl-btn::after,
    .m-search-bar .search-clear::after, .dl-card .lib-del-btn::after { content: ''; position: absolute; }
    .ti-clear { min-width: 44px; min-height: 44px; }                    /* «Сбросить выбор» созвездия: 28 */
    /* Созвездие (SVG 300 в ширину, на телефоне ~0,8): лица — круг 20 → 28 (≈ 44 точки); дуги — полоса 55 с круглыми
       концами (дуга острова из одного альбома была 2×5); подписи дуг нажатие не перехватывают. */
    .ti-av-hit { r: 28px; }
    .ti-arc-hit { stroke-width: 55; stroke-linecap: round; }
    .ti-labels { pointer-events: none; }
    #m-dl-chip::after { inset: -9px -1px; }                             /* 47×28 → 47×44 */
    .track-row .tr-dl::after, .track-row .tr-cover-play .tr-play::after { inset: -7px; }   /* 32 → 44 */
    .lf-play-btn::after { inset: -9px; }                                /* 26 → 44 */
    .player-bar .pb-btn::after { inset: -8px; }                         /* 28–30 → 44+ */
    .player-bar .pb-play::after { inset: -6px; border-radius: 50%; }    /* 36 → 44 */
    .pn-who::after { inset: -8px; border-radius: 50%; }                 /* 28 → 44 */
    .ap-rename::after { inset: -14px -15px; }                           /* 14×17 → 44 */
    .aa-switch::after { inset: -7px 0; }                                /* 52×30 → 52×44 */
    #adm-find-x::after { inset: -11px -13px; }                          /* 19×23 → 45 */
    .ai-playlist-card .apt-more::after { inset: -2px; }                 /* 40 → 44 */
    .cover > .dl-btn::after { inset: -3px; border-radius: 50%; }        /* 38 → 44 в выдаче поиска */
    .m-search-bar .search-clear::after { inset: -4px; border-radius: 50%; }   /* 36 → 44 */
    .ai-chat-list-item .acli-del::after { inset: -9px; }                /* 28 → 44 */
    /* × в углу обложки (обложка обрезает всё, что за краем): площадка растёт внутрь — влево и вниз. */
    .dl-card .lib-del-btn::after { inset: -7px -7px -11px -11px; border-radius: 0; }   /* 28 → 44 */
    /* ▶ превью лежит на обложке трека 34–38 точек: обложка больше не обрезает, площадка — 44. */
    .ai-playlist-card .apt-cover { overflow: visible; }
    .ai-playlist-card .apt-cover img, .ai-playlist-card .apt-cover .apt-play { border-radius: 5px; }
    .ai-playlist-card .apt-cover .apt-play::after { inset: -5px; }
    /* Имя артиста и лейбла в строке: площадка в высоту строки побольше, вбок — чуть-чуть. */
    .artist-link::after, .lib-artist-link::after, .label-link::after { inset: -14px -4px; }
    /* Строка «артист · длительность» карточки ИИ обрезает по ширине (многоточие), а по высоте — нет:
       иначе площадка имени срезалась бы до 15 точек. */
    .ai-playlist-card .apt-sub, .dl-card .artist { overflow-x: clip; overflow-y: visible; }
}

/* Полоса перемотки вбок (4 точки, площадка была 18): 44 в высоту. Кнопки плеера над ней — выше слоем:
   где площадки сходятся, нажимается кнопка. На телефоне полоса — линия по верху мини-плеера: там не трогаем. */
@media (pointer: coarse) and (min-width: 768px) and (orientation: landscape), (pointer: coarse) and (min-width: 1025px) {
    .player-bar .pb-buttons { position: relative; z-index: 1; }
    .player-bar .pb-bar::before { top: -22px; bottom: -18px; }
}

/* Строка таблицы треков под пальцем включает трек (lib_detail_view.js). Safari на iPhone и iPad шлёт click
   только «нажимаемым» элементам — без cursor: pointer нажатие на название до документа не доходило. */
@media (hover: none) {
    .lib-files-table tbody tr:has(.lf-play-btn) { cursor: pointer; }
}
