.web-poem-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.web-poem-actions .button { flex: 1 1 auto; }
.web-poem-actions .button.active { border-color: rgba(255, 138, 61, 0.6); color: #ffb273; }

/* Лоадер внутри списка стихов (смена поэта чипом — без затемнения всего экрана) */
.dv2-loading-inline { padding: 48px 0; text-align: center; color: #8a8a96; font-size: 14.5px; }

/* ── Фильтры v2 = ВК: красный крест сброса (порт .filter-reset) + единый цвет имени поэта ── */
@media (min-width: 901px) {
  body.design-v2 .dv2-filter-reset-x { flex: 0 0 auto; width: 46px; height: 44px; display: grid; place-items: center; border: none; border-radius: 14px; background: #ef4444; color: #fff; cursor: pointer; }
  body.design-v2 .dv2-filter-reset-x:hover { filter: brightness(1.1); }
  body.design-v2 .dv2-filter-loading { font-size: 12.5px; color: #8a8a96; padding: 4px 2px; }
  /* Имя поэта в карточках стихов — единый фиолетовый (владелец 07-17: «не менять цвет у каждого») */
  body.design-v2 .dv2-pcard-titlewrap i { color: #a78bfa; }
  body.design-v2 .dv2-music-filter-pop { max-height: 64vh; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #2e2e3a transparent; }
  body.design-v2 .dv2-music-filter-pop::-webkit-scrollbar { width: 10px; }
  body.design-v2 .dv2-music-filter-pop::-webkit-scrollbar-thumb { background: #2e2e3a; border-radius: 5px; min-height: 56px; }
}

/* DESIGN V2 (20): фильтр — длинная пилюля + ШИРОКОЕ горизонтальное окно (репорт владельца 07-17:
   окно не влезало по вертикали из-за 124 чипов-поэтов; чипы теперь ложатся вширь + скролл-страховка) */
@media (min-width: 901px) {
  body.design-v2 .dv2-filter-wrap { flex: 1 1 auto; min-width: 300px; }
  body.design-v2 .dv2-filter-btn { width: 100%; justify-content: flex-start; }
  body.design-v2 .dv2-filter-btn .dv2-filter-chev { margin-left: auto; }
  body.design-v2 .dv2-filter-pop {
    width: 100%;
    min-width: 680px;
    max-width: calc(100vw - 400px);
    /* не упираться в нижний плеер-бар: высота от вьюпорта, хвост — скроллом */
    max-height: min(62vh, calc(100vh - 470px));
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #2e2e3a transparent;
  }
  body.design-v2 .dv2-music-filter-pop { max-height: min(62vh, calc(100vh - 470px)); }
  body.design-v2 .dv2-filter-pop::-webkit-scrollbar { width: 10px; }
  body.design-v2 .dv2-filter-pop::-webkit-scrollbar-track { background: transparent; }
  body.design-v2 .dv2-filter-pop::-webkit-scrollbar-thumb { background: #2e2e3a; border-radius: 5px; min-height: 56px; }
}

/* ── Модалка-ридер «Текст песни» (порт ВК lyrics-reader: плашка/вкладки/секции) ── */
.lr-track-title { font-size: 17px; font-weight: 800; color: var(--text); margin: -4px 0 12px; }
.lr-notice { display: flex; align-items: flex-start; gap: 9px; border: 1px solid rgba(245, 158, 11, 0.34); background: #1b1408; border-radius: 14px; padding: 12px; margin-bottom: 16px; }
.lr-notice-ico { color: #fcd34d; font-size: 15px; line-height: 1.35; flex: none; }
.lr-notice-text { color: #fde6b3; font-size: 13px; line-height: 1.5; }
.lr-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.lr-tab { flex: 1; padding: 10px 8px; border: 1px solid #27272a; border-radius: 10px; background: #18181b; color: #9ca3af; font-size: 14px; font-weight: 700; cursor: pointer; font-family: inherit; }
.lr-tab.active { border-color: #fcd34d; background: #2a2410; color: #fcd34d; }
.web-lr-body { max-height: 48vh; overflow-y: auto; padding: 4px 2px; scrollbar-width: thin; scrollbar-color: #2e2e3a transparent; }
.web-lr-body::-webkit-scrollbar { width: 10px; }
.web-lr-body::-webkit-scrollbar-thumb { background: #2e2e3a; border-radius: 5px; min-height: 56px; }
.lr-section { margin-bottom: 20px; }
.lr-sec-name { color: #8b5cf6; font-size: 12px; font-weight: 800; letter-spacing: 0.5px; margin-bottom: 8px; text-transform: uppercase; }
.lr-line { color: #e5e7eb; font-size: 16px; line-height: 1.7; }
.lr-empty { color: #9ca3af; text-align: center; padding: 36px 16px; }
.lr-actions { margin-top: 14px; }

/* Крестик закрытия v2-плеера + слайд бара (владелец 07-17: без трека плеер УЕЗЖАЕТ вниз,
   при запуске ВЫЕЗЖАЕТ снизу; колонки плавно занимают/отдают его 84px — никакой чёрной полосы) */
@media (min-width: 901px) {
  body.design-v2 .dv2-pl-close { border: 0; background: rgba(255,255,255,.08); color: #cfcfda; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; margin-left: 6px; flex: 0 0 auto; }
  body.design-v2 .dv2-pl-close:hover { background: rgba(255,255,255,.16); color: #fff; }
  body.design-v2 .dv2-player { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; transform: translateY(0); transition: transform .34s ease; will-change: transform; }
  body.design-v2:not(.dv2-has-player) .dv2-player { transform: translateY(103%); pointer-events: none; }
  body.design-v2 .dv2-side, body.design-v2 .dv2-col { transition: height .34s ease; }
  body.design-v2:not(.dv2-has-player) .dv2-side, body.design-v2:not(.dv2-has-player) .dv2-col { height: 100vh; }

  /* Оранжевые кромки хрома + «пылина»-ореол от линии (1:1 ВК .tabbar/липкая шапка:
     линия rgba(255,138,61,.45), ореол .10→0 тает за 26px внутрь панели; владелец 07-17). */
  body.design-v2 .dv2-player {
    border-top: 1px solid rgba(255, 138, 61, 0.45);
    background: linear-gradient(to bottom, rgba(255, 138, 61, 0.10), rgba(255, 138, 61, 0) 26px), #0c0c11;
  }
  body.design-v2 .dv2-head {
    border-bottom: 1px solid rgba(255, 138, 61, 0.45);
    background: linear-gradient(to top, rgba(255, 138, 61, 0.10), rgba(255, 138, 61, 0) 26px), rgba(10, 10, 14, 0.7);
  }
  body.design-v2 .dv2-side {
    border-right: 1px solid rgba(255, 138, 61, 0.45);
    background: linear-gradient(to left, rgba(255, 138, 61, 0.10), rgba(255, 138, 61, 0) 26px), #0c0c11;
  }

  /* ── Единая недвижимая шапка разделов (владелец 07-17): без стрелок, название слева,
     поиск справа; фильтры/табы в .dv2-subhead под шапкой; оранжевая кромка — ПОД всей
     шапкой (у экранов с подшапкой кромку несёт подшапка, у шапки — нейтральный низ). ── */
  body.design-v2 .dv2-head--r .dv2-search { margin-left: auto; flex: 0 1 440px; }
  /* Кнопка «назад на главную» слева от названия раздела (владелец 07-18) */
  .dv2-head-back { width: 38px; height: 38px; flex: 0 0 auto; border-radius: 50%; border: 1px solid rgba(255,255,255,.1); background: #141420; color: #cfcfda; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; margin-right: 2px; }
  .dv2-head-back:hover { background: #1c1c2a; color: #fff; border-color: rgba(255,255,255,.2); }
  .dv2-head-title { font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 26px; letter-spacing: -.01em; color: #f6f6f9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  body.design-v2 .dv2-head--sect {
    border-bottom: 1px solid rgba(255,255,255,.05);
    background: rgba(10, 10, 14, 0.7);
  }
  .dv2-subhead {
    position: relative; z-index: 25; flex: 0 0 auto;
    padding: 12px 26px 14px;
    border-bottom: 1px solid rgba(255, 138, 61, 0.45);
    background: linear-gradient(to top, rgba(255, 138, 61, 0.10), rgba(255, 138, 61, 0) 26px), #0a0a0e;
  }
  .dv2-subhead .dv2-poems-controls { position: static; margin: 0; padding: 0; background: none; border: 0; backdrop-filter: none; }
  .dv2-subhead .dv2-chips-row { padding: 12px 0 0; }

  /* Золотой логотип в сайдбаре вместо «C»-бейджа (владелец 07-17); подпись под брендом убрана */
  .dv2-brand-logo { width: 40px; height: 40px; object-fit: contain; flex: 0 0 auto; filter: drop-shadow(0 4px 12px rgba(255, 168, 61, 0.35)); }

  /* Тумблер RU/EN отдельного стиха — 1:1 ВК .poem-lang/.poem-lang-btn (styles.css ~2398) */
  .dv2-poem-lang { display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: rgba(255, 255, 255, 0.06); flex: 0 0 auto; }
  .dv2-poem-lang-btn { border: none; background: transparent; color: #9a9aa8; font-size: 12px; font-weight: 800; padding: 4px 12px; border-radius: 999px; cursor: pointer; line-height: 1.2; }
  .dv2-poem-lang-btn.active { background: #8b5cf6; color: #fff; }
  .dv2-poemrow .dv2-poem-lang { padding: 2px; }
  .dv2-poemrow .dv2-poem-lang-btn { padding: 3px 9px; font-size: 11px; }
  .web-poem-metarow { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  /* Ряд «тумблер + Закрыть»: чип слева, «Закрыть» занимает остаток (владелец 07-17) */
  .web-poem-closerow { display: flex; align-items: center; gap: 10px; flex: 1 1 100%; }
  .web-poem-closerow .web-poem-lang { flex: 0 0 auto; }
  .web-poem-closerow .button-primary { flex: 1 1 auto; }

  /* Лоадер контент-зоны при SPA-переходе: золотой логотип по ЦЕНТРУ контентной области (владелец 07-19) */
  .dv2-boot-load { flex: 1; min-height: 64vh; display: grid; place-items: center; }
  .dv2-boot-shell { position: fixed; inset: 0; display: grid; place-items: center; }
  /* Пустые состояния (закладки/плейлист/поиск) — маленькая карточка по ЦЕНТРУ контентной области,
     а не в углу грида и не на всю ширину (владелец 07-19). */
  body.design-v2 .dv2-empty-center { grid-column: 1 / -1; min-height: 64vh; display: flex; align-items: center; justify-content: center; }
  body.design-v2 .dv2-empty-center .dv2-poems-empty { max-width: 440px; width: 100%; box-sizing: border-box; margin: 0 auto; }
  .dv2-boot-load-logo { width: 96px; height: 96px; object-fit: contain; animation: dv2BootPulse 1.5s ease-in-out infinite; filter: drop-shadow(0 10px 30px rgba(255, 168, 61, 0.4)); }
}
@keyframes dv2BootPulse {
  0%, 100% { transform: scale(1); opacity: .85; }
  50% { transform: scale(1.08); opacity: 1; }
}

/* Share-кнопка в шапке ридера «Текст песни» (как lr-icon-btn ВК; иконка та же, что на карточках) */
.web-modal-head .lr-share-btn { margin-left: auto; width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line, #575469); border-radius: 12px; background: rgba(255,255,255,.05); color: #e8e8f0; cursor: pointer; flex: 0 0 auto; }
.web-modal-head .lr-share-btn:hover { background: rgba(255,255,255,.12); color: #fff; }
.web-modal-head .lr-share-btn[hidden] { display: none; }

/* ─── Устойчивость десктопа к ресайзу (владелец 07-18): ② центрирование на ультраширине,
   ④ узкая полоса 901–1120px, ⑤ страховка от горизонтального скролла. Всё в v2-слое (>900px). ─── */
@media (min-width: 901px) {
  /* ⑤ Оболочка и колонка не выпихивают страницу вбок при любой ширине */
  body.design-v2, body.design-v2 .dv2-shell { overflow-x: hidden; }
  body.design-v2 .dv2-col, body.design-v2 .dv2-main { min-width: 0; }
}
/* ④ Узкая полоса десктопа: сайдбар и отступы плотнее, «Популярное» в 1 колонку */
@media (min-width: 901px) and (max-width: 1120px) {
  body.design-v2 .dv2-side { width: clamp(184px, 20vw, 208px); flex-basis: clamp(184px, 20vw, 208px); padding: 16px 10px; }
  body.design-v2 .dv2-main { padding: 20px 18px 36px; }
  body.design-v2 .dv2-hero { padding: 22px 22px; gap: 18px; }
  body.design-v2 .dv2-pop-grid { grid-template-columns: 1fr; }
  body.design-v2 .dv2-head, body.design-v2 .dv2-subhead { padding-left: 18px; padding-right: 18px; }
}
/* ② Ультраширокие мониторы: контент-колонка ~1500px по центру, не растекается */
@media (min-width: 1560px) {
  body.design-v2 .dv2-main { padding-left: max(26px, calc((100% - 1500px) / 2)); padding-right: max(26px, calc((100% - 1500px) / 2)); }
  body.design-v2 .dv2-head, body.design-v2 .dv2-subhead { padding-left: max(26px, calc((100% - 1500px) / 2)); padding-right: max(26px, calc((100% - 1500px) / 2)); }
}

