/* Корзина выбора (DK/F5 16.10): глобальная панель «Выбрано N · К заявке →» и кнопка «Выбрать» в шапке страницы
   агентства и кейса. ОДИН ФАЙЛ НА ОБА ДВИЖКА (Grav default.html.twig и rdk-cases base.html), JS — rq-cart.js.
   Кнопки у строк рейтинга и форма заявки — request-select.css, карточка кейса — cases.css (.rq-pick--card).
   Версия: Grav — rdk_assets, rdk-cases — asset_v() (оба ?v=filemtime: одна запись в кэше браузера). */

/* Плавающая кнопка-корзина (DK/F5 16.10, второй показ; вместо нижней панели): правый нижний угол, 16 пкс от края, видна
   при любом скролле, только при непустом списке. Десктоп 48 пкс + подпись «К заявке» по hover, мобайл 56 пкс без подписи.
   Полупрозрачная 0,85, непрозрачная при hover/touch. z-index выше баннера cookie (9999); над видимым баннером JS
   поднимает её через --rq-bottom. Всплывашка «Добавлено · К заявке →» — над кнопкой, 3,5 с. */
.rq-fab{position:fixed;right:16px;bottom:var(--rq-bottom,16px);z-index:10000;display:flex;flex-direction:column;align-items:flex-end;gap:8px;
  pointer-events:none;transition:opacity .15s ease,transform .15s ease}
.rq-fab[hidden]{display:none}
.rq-fab.is-away{opacity:0;transform:translateY(8px)}
.rq-fab.is-away .rq-fab-btn{pointer-events:none}
.rq-fab-btn{pointer-events:auto;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0;height:48px;min-width:48px;
  padding:0 12px;box-sizing:border-box;border-radius:24px;background:#2b3a52;color:#fff;text-decoration:none;opacity:.85;
  box-shadow:0 8px 24px rgba(20,32,52,.28);transition:opacity .15s ease,background .15s ease}
.rq-fab-btn:hover,.rq-fab-btn:focus-visible,.rq-fab.is-touch .rq-fab-btn{opacity:1;color:#fff;background:#243041;text-decoration:none}
.rq-fab-btn:focus-visible{outline:2px solid #fff;outline-offset:-5px}
.rq-fab-icon{width:24px;height:24px;flex:0 0 auto}
.rq-fab-badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;border-radius:10px;
  background:#e8590c;color:#fff;font-size:12px;font-weight:700;line-height:20px;text-align:center;box-shadow:0 0 0 2px #fff}
.rq-fab-label{max-width:0;overflow:hidden;white-space:nowrap;font-size:.92rem;font-weight:700;transition:max-width .2s ease,margin .2s ease}
.rq-fab-btn:hover .rq-fab-label,.rq-fab-btn:focus-visible .rq-fab-label{max-width:120px;margin-left:8px}
.rq-fab-toast{pointer-events:auto;display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;background:#fff;color:#18202b;
  border:1px solid var(--line-strong,#d6dee9);box-shadow:0 8px 24px rgba(20,32,52,.18);font-size:.9rem;font-weight:600;white-space:nowrap;
  opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease}
.rq-fab-toast[hidden]{display:none}
.rq-fab-toast.is-on{opacity:1;transform:none}
.rq-fab-toast a{color:#243041;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.rq-fab-toast-sep{color:#98a2b3;font-weight:400}
@media (hover: none), (max-width: 599px){
  .rq-fab-btn{height:56px;min-width:56px;width:56px;padding:0;border-radius:28px}
  .rq-fab-icon{width:26px;height:26px}
  .rq-fab-label{display:none}
}

/* «Выбрать» в шапке страницы агентства (рядом с «Сайт / Контакты») и кейса (угол шапки, «выбрать агентство»). */
.rq-pick--head{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line-strong,#d6dee9);
  border-radius:10px;background:#fff;color:#344054;font:inherit;font-size:.86rem;font-weight:600;line-height:1.2;
  white-space:nowrap;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}
.rq-pick--head:hover{background:#f7f9fc;border-color:#98a2b3}
.rq-pick--head:focus-visible{outline:2px solid #2b3a52;outline-offset:2px}
.rq-pick--head::before{content:"";flex:0 0 auto;width:14px;height:14px;border:1.5px solid #98a2b3;border-radius:4px;
  background:#fff center/11px 11px no-repeat;box-sizing:border-box}
.rq-pick--head.is-on{background:var(--accent,#243041);border-color:var(--accent,#243041);color:#fff}
.rq-pick--head.is-on::before{border-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23243041' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.entity-meta .rq-pick--head{margin-left:14px;vertical-align:middle}
.case-page{position:relative}
.case-page > .rq-pick--head{position:absolute;top:0;right:0}

/* Точка входа над таблицей (главная и рейтинги с галками, DK/F5 15.10): поле задачи → /podbor; поиск по названию
   свёрнут в иконку справа и раскрывается по фокусу (CSS, без JS: :focus и :placeholder-shown). Файл грузится в <head>
   на всех страницах — поле над таблицей не прыгает при загрузке. */
.ts-entry-row{display:flex;align-items:stretch;gap:8px;width:100%}
.ts-entry{flex:1 1 auto;min-width:0;display:flex;gap:8px;margin:0}
/* вид поля — общая схема с поиском по названию (.table-search в rating.css, F5 18.10); здесь раскладка и отступ без иконки */
.table-toolbar .ts-entry-q{flex:1 1 auto;min-width:0;width:auto;padding:0 14px;box-sizing:border-box;font-family:inherit}
.ts-entry-go{flex:0 0 auto;height:44px;box-sizing:border-box;padding:0 18px;border:none;border-radius:12px;background:var(--accent,#243041);color:#fff;
  font:inherit;font-size:.95rem;font-weight:600;cursor:pointer}
.ts-entry-go:hover{background:#2b3a52}
.ts-entry-row .table-search-form--icon{flex:0 0 auto;margin:0}
/* строка счётчиков «800 · 08.10.2026» не прилипает к кнопке «Найти» (F5 18.10): ≥ 16 пкс на десктопе */
@media (min-width: 600px){ .ts-entry-row + .table-below-search{margin-top:16px} }
/* подсказка «Поиск по рейтингу …» ушла в плейсхолдер поля (F5 18.10): счётчики — справа, как при подсказке слева */
.ts-entry-row + .table-below-search{justify-content:flex-end}
.ts-entry-row .table-search-form--icon .table-search-wrap{width:auto}
.table-search-form--icon .table-search{width:44px;padding:0 0 0 43px;cursor:pointer;transition:width .18s ease,padding .18s ease}
.table-search-form--icon .table-search::placeholder{color:transparent}
.table-search-form--icon .table-search:focus,.table-search-form--icon .table-search:not(:placeholder-shown){width:340px;padding:0 14px 0 40px;cursor:text}   /* 340: «Поиск по рейтингу разработчиков приложений» целиком (F5 18.10) */
.table-search-form--icon .table-search:focus::placeholder{color:#94a3b8}
@media (max-width: 599px){
  /* поле во всю ширину (в ряд с кнопкой и иконкой плейсхолдер обрезался на 390), под ним «Подобрать» + иконка поиска;
     раскрытый поиск по названию занимает строку кнопки */
  .ts-entry-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .ts-entry{display:contents}
  .table-toolbar .ts-entry-q{grid-column:1 / -1;padding:0 12px}   /* 390: плейсхолдер целиком */
  .ts-entry-row .table-search-form--icon{grid-column:2;grid-row:2;justify-self:end}
  .table-search-form--icon .table-search:focus,.table-search-form--icon .table-search:not(:placeholder-shown){width:100%}
  .ts-entry-row:has(.table-search:focus) .ts-entry-go,.ts-entry-row:has(.table-search:not(:placeholder-shown)) .ts-entry-go{display:none}
  .ts-entry-row:has(.table-search:focus) .table-search-form--icon,.ts-entry-row:has(.table-search:not(:placeholder-shown)) .table-search-form--icon{grid-column:1 / -1;justify-self:stretch}
  .ts-entry-row:has(.table-search:focus) .table-search-wrap,.ts-entry-row:has(.table-search:not(:placeholder-shown)) .table-search-wrap{width:100%}
}
