/* Уведомления, подсказки и анимация окон Leyvu */
.lv-toasts{position:fixed;z-index:1000;right:20px;bottom:20px;display:grid;gap:10px;width:min(380px,calc(100vw - 32px));pointer-events:none}
.lv-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 12px 12px 16px;border:1px solid var(--line,#2b2d30);border-left:4px solid var(--lv-tone);border-radius:12px;background:color-mix(in srgb,var(--panel,#1a1c1e) 94%,#000);color:var(--ink,#f3f1ed);box-shadow:0 16px 40px #0008;--lv-tone:var(--accent,#ff725b);animation:lv-toast-in .32s cubic-bezier(.2,.8,.2,1)}
.lv-toast[data-tone=success]{--lv-tone:var(--v2-success,#78bd9d)}.lv-toast[data-tone=error]{--lv-tone:var(--v2-error,#e4776b)}
.lv-toast p{flex:1;margin:2px 0;font-size:14px;line-height:1.45}
.lv-toast-close{flex:none;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--muted,#97999d);cursor:pointer}
.lv-toast-close:hover{color:var(--ink,#f3f1ed);background:#ffffff10}
.lv-toast.is-leaving{animation:lv-toast-out .24s ease-in forwards}
@keyframes lv-toast-in{from{opacity:0;transform:translateY(12px) scale(.98)}}
@keyframes lv-toast-out{to{opacity:0;transform:translateX(24px)}}
@media(max-width:760px){.lv-toasts{left:16px;right:16px;width:auto;bottom:calc(76px + env(safe-area-inset-bottom))}@keyframes lv-toast-out{to{opacity:0;transform:translateY(12px)}}}
.lv-tip{position:fixed;z-index:1001;max-width:260px;padding:7px 11px;border-radius:8px;background:var(--ink,#f3f1ed);color:var(--bg,#101112);font-size:12px;font-weight:600;line-height:1.4;pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}
.lv-tip[data-side=top]{transform:translateY(4px)}
.lv-tip.is-visible{opacity:1;transform:none}
/* Диалоги: появление с лёгким масштабом и затемнение фона */
dialog.v3-dialog[open],dialog.lv-confirm[open]{animation:lv-dialog-in .26s cubic-bezier(.2,.8,.2,1)}
dialog.v3-dialog::backdrop,dialog.lv-confirm::backdrop{background:#0009;backdrop-filter:blur(3px);animation:lv-fade .26s ease}
dialog.lv-confirm{width:min(460px,calc(100vw - 32px));border:1px solid var(--line,#2b2d30);border-radius:16px;background:var(--panel,#1a1c1e);color:var(--ink,#f3f1ed);padding:22px}
dialog.lv-confirm h2{margin:0 0 10px;font-size:19px}dialog.lv-confirm p{color:var(--muted,#97999d);line-height:1.55}
dialog.lv-confirm .v3-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
@keyframes lv-dialog-in{from{opacity:0;transform:translateY(10px) scale(.97)}}
@keyframes lv-fade{from{opacity:0}}
/* Видимый фокус для клавиатуры и пульта */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--accent,#ff725b);outline-offset:3px;border-radius:8px}
@media(prefers-reduced-motion:reduce){.lv-toast,.lv-toast.is-leaving,dialog.v3-dialog[open],dialog.lv-confirm[open],dialog::backdrop{animation:none!important}.lv-tip{transition:none}}
.lv-feedback #toast{display:none!important}
/* Режим телевизора: отступы от краёв экрана (overscan), крупные зоны и заметный фокус */
html.tv-mode body{padding:2.5vh 3.5vw}
html.tv-mode :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible,html.tv-mode :where(a,button,input,select,textarea,summary,[tabindex]):focus{outline:4px solid var(--accent,#ff725b);outline-offset:4px;box-shadow:0 0 0 8px color-mix(in srgb,var(--accent,#ff725b) 25%,transparent)}
html.tv-mode :where(.button,button,.nav-link,.ph-tabs a,.ph-filters a){min-height:52px}
html.tv-mode :where(.ph-item,.pv-posters a,.tv-card,.catalog-card,.anime-card):focus-within{transform:scale(1.03)}
html.tv-mode .lv-tip{display:none}
@media(prefers-reduced-motion:reduce){html.tv-mode :where(.ph-item,.pv-posters a,.tv-card,.catalog-card,.anime-card):focus-within{transform:none}}
/* Меню аккаунта: мягкое появление из-под аватара */
.v31-profile-menu:not([hidden]){animation:lv-menu-in .18s cubic-bezier(.2,.8,.2,1);transform-origin:top right}
@keyframes lv-menu-in{from{opacity:0;transform:translateY(-6px) scale(.97)}}
@media(prefers-reduced-motion:reduce){.v31-profile-menu:not([hidden]){animation:none}}
/* Пока приложение дорисовывает страницу, подвал остаётся ниже первого экрана — без скачка вёрстки */
main#home{min-height:100vh;min-height:100svh}
