/* 🎙 «Живой эфир» (#1494) — «Тёплая сцена»: текст ≥14px, кнопки ≥44px */
.lv-ov { position: fixed; inset: 0; z-index: 1800; background: rgba(10,4,6,.72); display: flex; align-items: flex-end; justify-content: center; }
.lv-card { width: 100%; max-width: 560px; max-height: 92vh; overflow-y: auto; box-sizing: border-box; padding: 16px 16px calc(20px + env(safe-area-inset-bottom, 0px)); border-radius: 22px 22px 0 0; background: linear-gradient(180deg, #3a1018, #1b0c10 40%); border: 1.5px solid rgba(242,196,109,.35); border-bottom: 0; color: #fbf1de; }
.lv-head, .lv-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.lv-h { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 21px; font-weight: 700; line-height: 1.2; color: #fbf1de; }
.lv-x { min-width: 44px; min-height: 44px; border-radius: 14px; border: 1.5px solid rgba(242,196,109,.4); background: rgba(255,238,208,.06); color: #f2c46d; font-size: 18px; cursor: pointer; }
.lv-body { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.lv-plaque { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 88px; padding: 14px; text-align: left; border-radius: 18px; border: 1.5px solid rgba(242,196,109,.45); background: rgba(255,238,208,.06); color: #fbf1de; font-family: inherit; cursor: pointer; }
.lv-plaque:first-child { border-color: rgba(242,196,109,.9); background: linear-gradient(160deg, rgba(247,213,140,.16), rgba(226,169,74,.08)); }
.lv-plaque:active { transform: scale(.985); }
.lv-pi { flex: none; font-size: 36px; line-height: 1; }
.lv-pt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lv-pt b { font-size: 18px; font-weight: 800; line-height: 1.2; }
.lv-pt small { font-size: 14px; line-height: 1.35; color: #d9c7aa; }
.lv-new { margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: #d63a3a; color: #fff; font-style: normal; font-size: 14px; font-weight: 800; vertical-align: 2px; }
.lv-full { position: fixed; inset: 0; z-index: 1800; display: flex; flex-direction: column; background: #130709; color: #fbf1de; padding: calc(var(--safe-t, 0px) + 10px) 14px calc(12px + env(safe-area-inset-bottom, 0px)); box-sizing: border-box; }
.lv-fbody { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 10px; margin-top: 10px; overflow-y: auto; }
.lv-lead { margin: 0; font-size: 16px; line-height: 1.4; color: #e3d3ba; }
.lv-btn { min-height: 48px; padding: 8px 16px; border-radius: 14px; border: 1.5px solid rgba(242,196,109,.5); background: rgba(255,238,208,.06); color: #fbf1de; font-family: inherit; font-size: 16px; font-weight: 700; cursor: pointer; }
.lv-go, .lv-sound { border: 0; background: linear-gradient(180deg, #f7d58c, #e2a94a); color: #2a1408; font-weight: 800; }
.lv-ic { min-width: 52px; font-size: 22px; padding: 6px 10px; }
.lv-stop { border-color: #e24a3b; color: #ff9a8a; }
.lv-prev { width: 96px; height: 96px; border-radius: 16px; object-fit: cover; align-self: flex-start; }
.lv-ta, .lv-in { box-sizing: border-box; width: 100%; padding: 12px 14px; border-radius: 14px; border: 1.5px solid rgba(242,196,109,.4); background: #1a0b0f; color: #fbf1de; font-family: inherit; font-size: 16px; }
.lv-err { margin: 0; font-size: 14px; color: #ff9a8a; }
.lv-video { position: relative; flex: 1 1 0; min-height: 0; aspect-ratio: 9 / 16; align-self: center; max-width: 100%; border-radius: 18px; overflow: hidden; background: #000; border: 1.5px solid rgba(242,196,109,.3); }
.lv-video video { width: 100% !important; height: 100% !important; object-fit: contain !important; }
.lv-video > div { width: 100% !important; height: 100% !important; }
.lv-status { margin: 0; text-align: center; font-size: 14px; color: #cbb89c; }
.lv-bar { display: flex; gap: 10px; justify-content: center; }
.lv-send { display: flex; gap: 8px; }
.lv-send .lv-in { flex: 1; min-height: 48px; }

/* ───── #1500: блок «🔊 Голос» ───── */
.lv-voice { display: flex; flex-direction: column; gap: 8px; }
.lv-vh { margin: 0; font-size: 16px; font-weight: 800; color: #f2c46d; }
.lv-vgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.lv-vcard { position: relative; display: flex; flex-direction: column; gap: 6px; min-height: 96px; padding: 10px 52px 10px 12px; box-sizing: border-box; border-radius: 16px; border: 1.5px solid rgba(242,196,109,.28); background: rgba(255,238,208,.05); color: #fbf1de; cursor: pointer; }
.lv-vcard.is-sel { border-color: #f2c46d; background: linear-gradient(160deg, rgba(247,213,140,.22), rgba(226,169,74,.1)); box-shadow: 0 0 0 1px rgba(242,196,109,.5) inset; }
.lv-ve { font-size: 26px; line-height: 1; }
.lv-vn { font-size: 15px; font-weight: 700; line-height: 1.2; }
.lv-vplay { position: absolute; top: 6px; right: 6px; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid rgba(242,196,109,.6); background: rgba(27,12,16,.7); color: #f7d58c; font-size: 16px; cursor: pointer; }
.lv-vplay.is-on { background: linear-gradient(160deg, #f7d58c, #e2a94a); color: #2a1408; }

/* ───── #1501: настроение и кнопки движений ───── */
.lv-moods { display: flex; flex-wrap: wrap; gap: 8px; }
.lv-mood { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 6px 14px; border-radius: 999px; border: 1.5px solid rgba(242,196,109,.32); background: rgba(255,238,208,.05); color: #fbf1de; font-family: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.lv-mood .lv-ve { font-size: 20px; }
.lv-mood.is-sel { border-color: #f2c46d; background: linear-gradient(160deg, rgba(247,213,140,.28), rgba(226,169,74,.14)); color: #f7d58c; }
.lv-moves { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.lv-move { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 52px; padding: 4px 4px; border-radius: 14px; border: 1.5px solid rgba(242,196,109,.4); background: rgba(255,238,208,.06); color: #fbf1de; font-family: inherit; font-size: 14px; font-weight: 700; line-height: 1.15; text-align: center; cursor: pointer; }
.lv-move .lv-ve { font-size: 20px; }
.lv-move.is-busy { opacity: .45; }
.lv-video { min-height: 160px; }
.lv-fbody > :not(.lv-video) { flex-shrink: 0; }

/* ───── #1511: запись своего голоса ───── */
.lv-rov { z-index: 1900; }
.lv-timer { margin: 0; text-align: center; font-size: 22px; font-weight: 800; color: #f2c46d; }
.lv-rec { border-color: #e24a3b; color: #ff9a8a; }
.lv-aud { width: 100%; height: 44px; }

/* ───── #1517: три набора голосов ───── */
.lv-sets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.lv-set { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 76px; padding: 8px 4px; border-radius: 16px; border: 1.5px solid rgba(242,196,109,.32); background: rgba(255,238,208,.05); color: #fbf1de; font-family: inherit; font-size: 14px; font-weight: 800; line-height: 1.15; text-align: center; cursor: pointer; }
.lv-set .lv-ve { font-size: 26px; }
.lv-set.is-sel { border-color: #f2c46d; background: linear-gradient(160deg, rgba(247,213,140,.28), rgba(226,169,74,.14)); color: #f7d58c; box-shadow: 0 0 0 1px rgba(242,196,109,.5) inset; }
.lv-voice .lv-vgrid { margin-top: 8px; }
.lv-ta { padding-right: 112px; min-height: 104px; }
.lv-ta ~ .pc-btn span, .lv-fbody .pc-btn span { font-size: 16px; }

/* ───── #1549: «Мои аватары», строки настроек, шторки ───── */
.lv-sub { margin: 4px 0 0; font: 700 20px/1.2 Georgia, "Times New Roman", serif; color: #fbf1de; }
.lv-agrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lv-acard { position: relative; display: block; padding: 0; margin: 0; width: 100%; aspect-ratio: 3 / 4; border-radius: 18px; overflow: hidden; box-sizing: border-box;
  border: 1.5px solid rgba(242,196,109,.34); background: #1a0b0f; color: #fbf1de; font: inherit; text-align: left; cursor: pointer; }
.lv-acard:active { transform: scale(.98); }
.lv-aph { position: absolute; inset: 0; display: grid; place-items: center; background: radial-gradient(circle at 30% 30%, #7a2433, #2a0d13); overflow: hidden; }
.lv-aph b { font: 700 56px Georgia, serif; color: rgba(247,213,140,.55); }
.lv-aph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lv-aname { position: absolute; left: 0; right: 0; bottom: 0; display: flex; padding: 26px 10px 10px; background: linear-gradient(to top, rgba(17,6,8,.92) 20%, rgba(17,6,8,0)); }
.lv-ant { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 17px; font-weight: 800; line-height: 1.2; }
.lv-anew { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; border: 2px dashed rgba(242,196,109,.6); background: rgba(247,213,140,.07); }
.lv-plus { font-size: 36px; line-height: 1; }
.lv-ant2 { font-size: 16px; font-weight: 800; color: #f7d58c; text-align: center; padding: 0 8px; }
.lv-backav { align-self: flex-start; min-height: 44px; }
.lv-hero { display: flex; align-items: center; gap: 14px; }
.lv-aph-big { position: relative; inset: auto; flex: none; width: 96px; height: 128px; border-radius: 16px; border: 1.5px solid rgba(242,196,109,.5); }
.lv-aph-big b { font-size: 40px; }
.lv-htx { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lv-hname { font: 700 20px/1.2 Georgia, serif; color: #fbf1de; overflow-wrap: anywhere; }
.lv-hpers { font-size: 14px; line-height: 1.35; color: #d9c7aa; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.lv-rows { display: flex; flex-direction: column; gap: 8px; }
.lv-row { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 8px 14px; box-sizing: border-box; border-radius: 14px; border: 1.5px solid rgba(242,196,109,.32); background: rgba(255,238,208,.05); color: #fbf1de; font: inherit; font-size: 16px; text-align: left; cursor: pointer; }
.lv-row:active { background: rgba(247,213,140,.16); }
.lv-ri { flex: none; font-size: 22px; }
.lv-rl { flex: none; font-weight: 700; color: #e3d3ba; }
.lv-rv { flex: 1; min-width: 0; text-align: right; font-weight: 800; color: #f7d58c; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv-rc { flex: none; font-size: 22px; color: #f2c46d; }
.lv-acts2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.lv-del { border-color: #e24a3b; color: #ff9a8a; }
.lv-conf { padding: 10px; border-radius: 14px; border: 1px solid rgba(226,74,59,.5); background: rgba(226,74,59,.12); display: flex; flex-direction: column; gap: 8px; }
.lv-minute { margin: 4px 0 0; text-align: center; font-size: 22px; font-weight: 800; color: #f7d58c; }
.lv-minute[hidden] { display: none; }
.lv-pov { z-index: 1900; }
.lv-plist { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.lv-opt { position: relative; display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 6px 12px; box-sizing: border-box; border-radius: 14px; border: 1.5px solid rgba(242,196,109,.28); background: rgba(255,238,208,.05); color: #fbf1de; cursor: pointer; }
.lv-opt.is-sel { border-color: #f2c46d; background: linear-gradient(160deg, rgba(247,213,140,.22), rgba(226,169,74,.1)); }
.lv-opt .lv-ve { flex: none; }
.lv-ot { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.lv-ot b { font-size: 16px; }
.lv-ot small { font-size: 14px; color: #d9c7aa; }
.lv-vp2 { position: static; flex: none; }

/* ───── #1553: таймер, предупреждение, TikTok, экран для эфира ───── */
.lv-extras { display: flex; flex-direction: column; gap: 8px; }
.lv-clock { margin: 0; text-align: center; font-size: 18px; font-weight: 800; color: #f7d58c; }
.lv-warn { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 14px; border: 1.5px solid #e24a3b; background: rgba(226,74,59,.16); font-size: 15px; font-weight: 700; color: #ffb4a8; }
.lv-warn[hidden] { display: none; }
.lv-wbtn { flex: none; min-height: 44px; background: linear-gradient(180deg, #f7d58c, #e2a94a); color: #2a1408; border: 0; }
.lv-ttst { margin: 0; text-align: center; font-size: 14px; color: #cbb89c; }
.lv-ttst[hidden] { display: none; }
.lv-ttbox { display: flex; flex-direction: column; gap: 8px; }
.lv-ttbox .lv-rc { display: none; }
.lv-ttbox .lv-in { min-height: 48px; }
.lv-step { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 14px; border: 1.5px solid rgba(242,196,109,.28); background: rgba(255,238,208,.05); }
.lv-simg { flex: none; width: 96px; }
.lv-simg svg { display: block; width: 100%; height: auto; }
.lv-stx { font-size: 16px; line-height: 1.4; color: #fbf1de; }
.lv-stx b { color: #f7d58c; }
.lv-cleanx { display: none; }
.lv-full.lv-clean { padding: 0; background: #000; }
.lv-full.lv-clean .lv-top, .lv-full.lv-clean .lv-fbody > :not(.lv-video) { display: none !important; }
.lv-full.lv-clean .lv-fbody { margin: 0; overflow: hidden; }
.lv-full.lv-clean .lv-video { position: fixed; inset: 0; z-index: 5; border: 0; border-radius: 0; min-height: 0; }
.lv-full.lv-clean .lv-cleanx { display: grid; place-items: center; position: fixed; top: calc(var(--safe-t, 0px) + 10px); right: 10px; z-index: 6; width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid rgba(242,196,109,.7); background: rgba(17,6,8,.7); color: #f7d58c; font-size: 20px; opacity: 0; pointer-events: none; transition: opacity .25s; }
.lv-full.lv-clean.lv-cx-on .lv-cleanx { opacity: 1; pointer-events: auto; }

/* #1566: окно эфира строго 9:16 (как видео Vivix) по свободной высоте, видео целиком (contain), кнопки под окном; экран для эфира — тоже 9:16 по центру без обрезки */
.lv-video { min-height: 220px !important; }
.lv-full.lv-clean .lv-video { inset: 0; min-height: 0 !important; aspect-ratio: auto; align-self: auto; max-width: none; background: #000; }
.lv-clock { font-size: 16px; line-height: 1.2; }
.lv-extras { gap: 4px; }
.lv-fbody > .lv-status { line-height: 1.2; }

/* ───── #1591 ТЕСТ «Экономный эфир»: петли роликов + слой Vivix, смена сцены ───── */
.lv-fbody > .lv-ecowrap { flex: 1 1 0; min-height: 200px; position: relative; display: flex; flex-direction: column; }
.lv-ecoloops, .lv-ecolive { position: absolute; inset: 0; }
.lv-ecoloops video.lv-ev { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: contain !important; opacity: 0; transition: opacity .3s linear; }
.lv-ecoloops video.lv-ev.is-on { opacity: 1; }
.lv-ecolive { opacity: 0; transition: opacity .3s linear; pointer-events: none; background: #000; }
.lv-ecolive.is-on { opacity: 1; }
.lv-ecochat { display: none; }
.lv-ecowrap.is-scene .lv-ecochat { display: block; position: absolute; inset: 0; overflow-y: auto; padding: 12px; box-sizing: border-box; background: #1b0c10; border: 1.5px solid rgba(242,196,109,.3); border-radius: 18px; }
.lv-ecowrap.is-scene .lv-ecobox { position: absolute; right: 8px; bottom: 8px; width: 30%; flex: none; min-height: 0; height: auto; z-index: 3; }
.lv-ecoln { margin: 0 0 10px; font-size: 18px; line-height: 1.3; color: #fbf1de; }
.lv-ecocnt { margin: 0; text-align: center; font-size: 14px; color: #f7d58c; }
.lv-ecoview { font-size: 16px; }
/* #1596: в «Экономном эфире» Vivix и ролики — FILL на всё окно 9:16 (фон Vivix ложится точно на фон ролика) */
.lv-ecobox .lv-ecolive video, .lv-ecobox .lv-ecoloops video.lv-ev { object-fit: fill !important; }
.lv-ecoloops video.lv-ev, .lv-ecolive { transition-duration: .4s; }

/* ───── #1756: «Здороваться первым», «Своя речь» (макет docs/approved/live_greet.md) ───── */
.lv-flex { flex: 1; }
.lv-sw { position: relative; flex: none; width: 56px; height: 32px; border-radius: 16px; background: rgba(255, 238, 208, .16); border: 1.5px solid rgba(242, 196, 109, .4); box-sizing: border-box; }
.lv-sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: 24px; height: 24px; border-radius: 50%; background: #d9c7aa; transition: left .15s; }
.lv-sw.is-on { background: linear-gradient(180deg, #f7d58c, #e2a94a); border-color: transparent; }
.lv-sw.is-on::after { left: 26px; background: #2a1408; }
.lv-greet { cursor: pointer; }
.lv-hint { margin: 0 2px; font-size: 14px; line-height: 1.35; color: #d9c7aa; }
.lv-ownbtn { width: 100%; }
.lv-bub { position: absolute; left: 10px; right: 10px; bottom: 12px; margin: 0; padding: 10px 14px; border-radius: 16px; background: rgba(19, 7, 9, .72); border: 1.5px solid rgba(242, 196, 109, .55); backdrop-filter: blur(8px); font-size: 16px; line-height: 1.4; color: #fff; z-index: 3; pointer-events: none; }
.lv-bub small { display: block; margin-bottom: 2px; font-size: 14px; font-weight: 700; color: #f7d58c; }
.lv-cnt { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 8px 2px 0; font-size: 14px; color: #cbb89c; }
.lv-incl { font-weight: 800; color: #f7d58c; }
.lv-own-lead { margin-top: 8px; margin-bottom: 10px; }
