/* Ёруми 1.0 · «Фиолетовая ночь»
   Фон почти чёрный, один фиолетовый акцент с градиентом, заголовки Dela Gothic One,
   карточки радиус 14, панели 26, пилюли. Всё на «вы». */
:root {
  color-scheme: dark;
  --bg: #0a0a0a; --surface: #0f0f12; --surface-2: #141418; --raise: rgba(255,255,255,.045); --raise-2: rgba(255,255,255,.08);
  --line: rgba(255,255,255,.1); --line-2: rgba(255,255,255,.16);
  --text: #fafafa; --muted: rgba(250,250,250,.58); --faint: rgba(250,250,250,.36);
  --accent: #7c3aed; --accent-2: #a855f7; --accent-soft: rgba(124,58,237,.18); --accent-line: rgba(168,85,247,.45); --on-accent: #fff;
  --star: #facc15; --ok: #22c55e; --xp: #4ea8ff; --danger: #f87171;
  --r-s: 8px; --r-m: 14px; --r-l: 26px; --r-pill: 999px;
  --font: "Onest", "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
  --display: "Dela Gothic One", "Onest", system-ui, sans-serif;
  --header: 64px; --bottom-nav: 64px; --wrap: 1360px; --reader-font: 19px;
  --ease-out: cubic-bezier(.16,1,.3,1); --ease-spring: cubic-bezier(.34,1.56,.64,1);
}
:root[data-theme="sakura"] { --accent:#ec4899; --accent-2:#f472b6; --accent-soft:rgba(236,72,153,.18); --accent-line:rgba(244,114,182,.45); }
:root[data-theme="momoiro"] { --bg:#120a10; --surface:#1a0f17; --surface-2:#22141e; --accent:#f472b6; --accent-2:#fb7185; --accent-soft:rgba(244,114,182,.18); --accent-line:rgba(251,113,133,.45); }
:root[data-theme="glass"] { --bg:#070b16; --surface:#0d1324; --surface-2:#131b31; --accent:#38bdf8; --accent-2:#818cf8; --accent-soft:rgba(56,189,248,.16); --accent-line:rgba(129,140,248,.45); }
:root[data-theme="midnight"] { --bg:#05070f; --surface:#0b0f1d; --surface-2:#111729; --accent:#6366f1; --accent-2:#8b5cf6; --accent-soft:rgba(99,102,241,.18); --accent-line:rgba(139,92,246,.45); }
:root[data-theme="shonen"] { --bg:#0a0c08; --surface:#10130d; --surface-2:#161a12; --accent:#84cc16; --accent-2:#f97316; --accent-soft:rgba(132,204,22,.16); --accent-line:rgba(249,115,22,.4); --on-accent:#0a0c08; }
:root[data-theme="zen"] { --bg:#0a0f10; --surface:#0f1617; --surface-2:#151d1f; --accent:#2dd4bf; --accent-2:#a3e635; --accent-soft:rgba(45,212,191,.16); --accent-line:rgba(163,230,53,.4); --on-accent:#0a0f10; }
:root[data-theme="amoled"] { --bg:#000; --surface:#08080a; --surface-2:#0f0f12; --line:rgba(255,255,255,.14); }
:root[data-theme="aurora"] { --bg:#04110f; --surface:#081a17; --surface-2:#0c221e; --accent:#34d399; --accent-2:#a78bfa; --accent-soft:rgba(52,211,153,.16); --accent-line:rgba(167,139,250,.4); --on-accent:#04110f; }
:root[data-theme="yokai"] { --bg:#0d0611; --surface:#140a1a; --surface-2:#1b0f23; --accent:#e11d48; --accent-2:#a855f7; --accent-soft:rgba(225,29,72,.18); --accent-line:rgba(168,85,247,.45); }

* { box-sizing:border-box; }
[hidden] { display:none!important; }
body:not(.is-admin) .admin-only,body:not(.signed-in) .signed-only { display:none!important; }
body:not(.signed-in) :is(.top-nav,.top-search,.top-tools,.bottom-nav) { display:none!important; }
/* Внутри Android-приложения сайт не предлагает сам себя */
body.in-app :is(.tile.promo,.site-only) { display:none!important; }
body.in-app .tiles { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.offline-bar { display:none; position:sticky; top:var(--header); z-index:60; padding:9px 16px; background:#3b2a12; color:#fde68a; font-size:13px; font-weight:600; text-align:center; }
body.offline .offline-bar { display:block; }
html,body { margin:0; min-height:100%; background:var(--bg); color:var(--text); font-family:var(--font); -webkit-font-smoothing:antialiased; }
body { font-size:15px; line-height:1.5; overflow-wrap:anywhere; padding-top:var(--header); }
body:not(.ready) #view,body:not(.ready) .top,body:not(.ready) .bottom-nav { visibility:hidden; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; color:inherit; }
button { border:0; background:none; cursor:pointer; padding:0; }
button:disabled { opacity:.42; cursor:default; }
:is(button,a,input,select,summary):focus-visible { outline:2px solid var(--accent-2); outline-offset:3px; border-radius:var(--r-s); }
h1,h2,h3,p,ul,ol,figure { margin:0; }
ul,ol { padding:0; list-style:none; }
h1 { font-size:34px; line-height:1.15; letter-spacing:-.4px; font-weight:800; }
h2 { font-size:22px; line-height:1.2; font-weight:800; letter-spacing:-.2px; }
h3 { font-size:15px; font-weight:700; }
.display { font-family:var(--display); font-weight:400; letter-spacing:0; }
h1.display { font-size:32px; line-height:1.12; }
svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; flex:none; }
em { font-style:normal; }
::selection { background:var(--accent); color:#fff; }
code,kbd { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.92em; }

/* Шапка */
.top { position:fixed; z-index:70; top:0; left:0; right:0; height:var(--header); background:rgba(10,10,10,.72); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-bottom:1px solid transparent; transition:border-color .2s,transform .3s var(--ease-out); }
body.scrolled .top { border-bottom-color:var(--line); }
.top-inner { max-width:var(--wrap); margin:0 auto; height:100%; padding:0 24px; display:flex; align-items:center; gap:18px; }
.brand { display:flex; align-items:center; gap:10px; flex:none; }
.brand img { width:38px; height:38px; border-radius:30%; }
.brand strong { font-size:22px; background:linear-gradient(90deg,#c4b5fd,var(--accent-2) 60%,#f0abfc); -webkit-background-clip:text; background-clip:text; color:transparent; }
.top-nav { display:flex; gap:2px; }
.top-nav a { padding:8px 12px; border-radius:var(--r-pill); color:var(--muted); font-size:14px; font-weight:600; transition:color .15s,background-color .15s; }
.top-nav a:hover { color:var(--text); background:var(--raise); }
.top-nav a.on { color:var(--text); background:var(--accent-soft); }
.top-nav .menu-only { display:none; }
.top-search { margin-left:auto; display:flex; align-items:center; gap:8px; width:min(360px,30vw); height:42px; padding:0 6px 0 14px; border-radius:var(--r-pill); background:var(--raise); border:1px solid var(--line); transition:border-color .15s,background-color .15s; }
.top-search:focus-within { border-color:var(--accent-line); background:var(--surface-2); }
.top-search svg { color:var(--muted); }
.top-search input { flex:1; min-width:0; border:0; background:none; height:40px; padding:0; }
.top-search input:focus-visible { outline:none; }
.top-search input::-webkit-search-cancel-button { appearance:none; }
.top-search button { width:32px; height:32px; border-radius:50%; background:var(--accent); color:#fff; display:grid; place-items:center; }
.top-tools { display:flex; align-items:center; gap:6px; }
.icon-btn,.avatar-btn { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; color:var(--muted); background:var(--raise); border:1px solid var(--line); transition:color .15s,background-color .15s; }
.icon-btn:hover,.avatar-btn:hover,.icon-btn.on,.avatar-btn.on { color:var(--text); background:var(--raise-2); }
.avatar-btn { background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; border:0; }
.top-tools [data-search-toggle],.burger { display:none; }

/* Каркас */
.view { min-width:0; max-width:var(--wrap); margin:0 auto; padding:26px 24px 80px; animation:enter .35s var(--ease-out) both; }
@keyframes enter { from { opacity:0; transform:translateY(10px); } }
body.immersive .view { padding:16px 20px 60px; max-width:none; }
.bottom-nav { display:none; }
.crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 14px; color:var(--faint); font-size:13px; }
.crumbs a:hover { color:var(--text); }
.crumbs b { color:var(--muted); font-weight:600; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; max-width:60vw; }

/* Типографика и мелочи */
.eyebrow { display:block; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:1.1px; text-transform:uppercase; }
.eyebrow.accent { color:var(--accent-2); }
.label { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; }
.label.accent { color:var(--accent-2); }
.label svg { width:14px; height:14px; }
.page-head { margin:0 0 20px; }
.page-head h1 { margin:0 0 8px; }
.page-head p { color:var(--muted); font-size:14px; }
.section { margin:36px 0 0; }
.section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; }
.section-head h2 { display:flex; align-items:center; gap:12px; font-family:var(--display); font-weight:400; font-size:24px; }
.section-icon { width:36px; height:36px; border-radius:12px; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent-2); flex:none; }
.section-icon.accent { background:var(--accent); color:#fff; }
.section-icon svg { width:18px; height:18px; }
.section-tools { display:flex; align-items:center; gap:8px; }
.arrow { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--raise); border:1px solid var(--line); color:var(--muted); transition:color .15s,background-color .15s; }
.arrow:hover { color:var(--text); background:var(--raise-2); }
.text-link { color:var(--accent-2); font-size:13px; font-weight:700; padding:6px 10px; border-radius:var(--r-pill); transition:background-color .15s; }
.text-link:hover { background:var(--accent-soft); }
.text-link.muted { color:var(--muted); display:inline-flex; align-items:center; gap:6px; }
.text-link.muted svg { width:14px; height:14px; }
.soft-note { color:var(--muted); font-size:13px; }
.notice { padding:12px 14px; border-radius:var(--r-m); border:1px solid var(--accent-line); background:var(--accent-soft); color:var(--text); font-size:13px; margin:0 0 12px; }
.ok { color:var(--ok); font-size:13px; font-weight:600; }
.hint { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; }
.hint svg { width:14px; height:14px; color:var(--star); }
.count-pill { display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 7px; border-radius:var(--r-pill); background:var(--accent); color:#fff; font-size:11px; font-weight:800; }

/* Кнопки, чипы, бейджи */
.cta,.outline { min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:9px; border-radius:var(--r-m); padding:12px 20px; font-size:15px; font-weight:700; transition:transform .15s var(--ease-spring),opacity .15s,background-color .15s,box-shadow .2s; }
.cta { background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:var(--on-accent); box-shadow:0 8px 24px -8px var(--accent); }
.cta:hover { box-shadow:0 12px 30px -8px var(--accent-2); }
.cta.big { width:100%; min-height:54px; font-size:16px; }
.outline { border:1px solid var(--line-2); color:var(--text); background:var(--raise); }
.outline:hover { background:var(--raise-2); }
.outline.glass { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2); backdrop-filter:blur(8px); }
.outline.wide { width:100%; }
.cta:active,.outline:active,.chip:active,.arrow:active,.ep:active,.fab:active { transform:scale(.96); }
.row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.row.two { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.row.two>* { min-width:0; }
.side-actions .outline { padding:10px 10px; font-size:13px; white-space:nowrap; }
.actions { display:flex; flex-wrap:wrap; gap:10px; }
.more { margin:24px auto 0; display:flex; min-width:220px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chip { display:inline-flex; align-items:center; gap:6px; min-height:38px; padding:8px 14px; border-radius:var(--r-pill); border:1px solid var(--line); background:var(--raise); color:var(--muted); font-size:13px; font-weight:600; transition:color .15s,background-color .15s,border-color .15s,transform .15s var(--ease-spring); }
.chip svg { width:15px; height:15px; }
.chip:hover { color:var(--text); background:var(--raise-2); }
.chip.active { color:#fff; background:var(--accent); border-color:var(--accent); }
.chip.small { min-height:32px; padding:5px 11px; font-size:12px; }
.chip.ongoing.active { background:var(--accent); } .chip.season { border-color:rgba(249,115,22,.4); } .chip.season.active { background:#f97316; border-color:#f97316; }
.chip.popular { border-color:rgba(56,189,248,.35); } .chip.popular.active { background:#0ea5e9; border-color:#0ea5e9; }
.chip.latest { border-color:rgba(34,197,94,.35); } .chip.latest.active { background:#16a34a; border-color:#16a34a; }
.badge { display:inline-flex; align-items:center; gap:4px; height:26px; padding:0 9px; border-radius:var(--r-pill); font-size:12px; font-weight:700; background:rgba(0,0,0,.6); color:var(--text); backdrop-filter:blur(6px); }
.badge svg { width:13px; height:13px; }
.badge.score { color:var(--star); }
.badge.score svg { fill:var(--star); stroke:var(--star); }
.badge.score.plain { background:none; padding:0; }
.badge.accent { background:var(--accent); color:#fff; }
.badge.soft { background:rgba(255,255,255,.12); }
.pill { display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 12px; border-radius:var(--r-pill); background:var(--raise); border:1px solid var(--line); font-size:13px; font-weight:600; color:var(--text); }
.pill svg { width:15px; height:15px; color:var(--muted); }
.pill.score { color:var(--star); border-color:rgba(250,204,21,.35); background:rgba(250,204,21,.08); }
.pill.score svg { color:var(--star); fill:var(--star); }
.pill.score small { color:var(--muted); font-weight:500; }
.pill.ongoing { color:#86efac; border-color:rgba(34,197,94,.35); background:rgba(34,197,94,.1); }
.pill.anons { color:#fcd34d; border-color:rgba(250,204,21,.3); }
.fact-pills { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 12px; }
select,input:not([type=checkbox]):not([type=file]):not([type=search]) { min-height:44px; padding:10px 14px; border-radius:12px; border:1px solid var(--line-2); background:var(--surface-2); color:var(--text); }
select { padding-right:30px; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3a3a3' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 10px center; background-size:16px; }
.menu-wrap { position:relative; }
.menu-wrap>.outline { width:100%; }
.menu { position:absolute; z-index:20; top:calc(100% + 6px); left:0; min-width:100%; padding:6px; border-radius:var(--r-m); background:var(--surface-2); border:1px solid var(--line-2); box-shadow:0 20px 50px rgba(0,0,0,.5); display:flex; flex-direction:column; }
.menu button { text-align:left; padding:10px 12px; border-radius:10px; font-size:14px; font-weight:600; color:var(--muted); }
.menu button:hover { background:var(--raise); color:var(--text); }
.menu button.on { color:var(--accent-2); }
.menu button.danger { color:var(--danger); }
.spinner { width:32px; height:32px; border:3px solid var(--line); border-top-color:var(--accent-2); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* Герой-слайдер */
.hero-slider { position:relative; min-height:520px; border-radius:var(--r-l); overflow:hidden; background:var(--surface); isolation:isolate; }
.slide { position:absolute; inset:0; opacity:0; transition:opacity .7s ease; pointer-events:none; }
.slide.on { opacity:1; pointer-events:auto; }
.slide .slide-copy,.slide .slide-poster { opacity:0; transform:translateY(14px); transition:opacity .6s var(--ease-out) .15s,transform .7s var(--ease-out) .15s; }
.slide.on .slide-copy,.slide.on .slide-poster { opacity:1; transform:none; }
.slide .slide-bg { transform:scale(1.06); transition:opacity .6s,transform 8s linear; }
.slide.on .slide-bg { transform:scale(1); }
.slide-bg { position:absolute; inset:-8%; width:116%; height:116%; object-fit:cover; object-position:center 20%; filter:blur(22px) saturate(1.2) brightness(.7); transform:scale(1.05); opacity:0; transition:opacity .6s; }
.slide-bg.ready { opacity:1; }
.slide-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,10,10,.92) 0%,rgba(10,10,10,.72) 45%,rgba(10,10,10,.25) 100%),linear-gradient(0deg,rgba(10,10,10,.95),transparent 55%); }
.slide-inner { position:relative; z-index:2; height:100%; min-height:520px; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; padding:48px 52px; align-items:end; }
.slide-copy { max-width:640px; }
.slide-badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.slide h2 { font-size:42px; line-height:1.08; margin:0 0 12px; text-wrap:balance; text-shadow:0 4px 30px rgba(0,0,0,.5); }
.slide-text { color:rgba(250,250,250,.78); font-size:15px; line-height:1.6; max-width:560px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.slide-actions { display:flex; gap:10px; margin-top:22px; }
.slide-poster { display:block; width:300px; aspect-ratio:2/3; border-radius:var(--r-m); overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08); transform:rotate(2deg); transition:transform .4s var(--ease-spring); }
.slide-poster:hover { transform:rotate(0) scale(1.02); }
.slide-poster img { width:100%; height:100%; object-fit:cover; display:block; }
.slide-dots { position:absolute; z-index:3; left:52px; bottom:22px; display:flex; gap:6px; }
.slide-dots button { width:8px; height:8px; border-radius:var(--r-pill); background:rgba(255,255,255,.3); transition:width .3s,background-color .3s; }
.slide-dots button.on { width:36px; background:var(--accent-2); }
.slide-arrow { position:absolute; z-index:3; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.15); color:#fff; display:grid; place-items:center; opacity:0; transition:opacity .2s; }
.slide-arrow.prev { left:14px; } .slide-arrow.next { right:14px; }
.hero-slider:hover .slide-arrow { opacity:1; }
.sk-hero { min-height:520px; border-radius:var(--r-l); }

/* Ряды, карточки, плитки */
.rail { display:flex; gap:16px; overflow:auto; padding:6px 2px 14px; scroll-snap-type:x proximity; scrollbar-width:none; scroll-behavior:smooth; }
.rail::-webkit-scrollbar { display:none; }
.rail .card,.rail .sk-card { flex:0 0 176px; scroll-snap-align:start; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(168px,1fr)); gap:26px 16px; }
.card { display:block; min-width:0; color:var(--text); }
.grid>.card,.rail>.card,.collection-grid>.collection-tile,.tiles>.tile,.release-list>.release-card,.continue-rail>.continue-card { animation:fade-up .55s var(--ease-out) both; }
.grid>.card:nth-child(2),.rail>.card:nth-child(2) { animation-delay:40ms; }
.grid>.card:nth-child(3),.rail>.card:nth-child(3) { animation-delay:80ms; }
.grid>.card:nth-child(4),.rail>.card:nth-child(4) { animation-delay:120ms; }
.grid>.card:nth-child(5),.rail>.card:nth-child(5) { animation-delay:160ms; }
.grid>.card:nth-child(6),.rail>.card:nth-child(6) { animation-delay:200ms; }
.grid>.card:nth-child(7),.rail>.card:nth-child(7) { animation-delay:240ms; }
.grid>.card:nth-child(8),.rail>.card:nth-child(8) { animation-delay:280ms; }
.grid>.card:nth-child(9),.rail>.card:nth-child(9) { animation-delay:320ms; }
.grid>.card:nth-child(10),.rail>.card:nth-child(10) { animation-delay:360ms; }
.grid>.card:nth-child(11),.rail>.card:nth-child(11) { animation-delay:400ms; }
.grid>.card:nth-child(12),.rail>.card:nth-child(12) { animation-delay:440ms; }
.grid>.card:nth-child(13),.rail>.card:nth-child(13) { animation-delay:480ms; }
.grid>.card:nth-child(14),.rail>.card:nth-child(14) { animation-delay:520ms; }
.collection-grid>.collection-tile:nth-child(n+2),.tiles>.tile:nth-child(n+2),.release-list>.release-card:nth-child(n+2),.continue-rail>.continue-card:nth-child(n+2) { animation-delay:60ms; }
.collection-grid>.collection-tile:nth-child(n+3),.tiles>.tile:nth-child(n+3),.release-list>.release-card:nth-child(n+3),.continue-rail>.continue-card:nth-child(n+3) { animation-delay:120ms; }
.collection-grid>.collection-tile:nth-child(n+5),.release-list>.release-card:nth-child(n+5) { animation-delay:180ms; }
.card-poster { position:relative; overflow:hidden; aspect-ratio:2/3; border-radius:var(--r-m); background:var(--surface-2); border:1px solid var(--line); transition:transform .3s var(--ease-spring),box-shadow .3s,border-color .2s; }
.card:hover .card-poster { transform:translateY(-4px); box-shadow:0 18px 40px -12px rgba(124,58,237,.45); border-color:var(--accent-line); }
.card:hover h3 { color:var(--accent-2); }
.card-poster .poster,.continue-card .poster,.release-card .poster { width:100%; height:100%; object-fit:cover; display:block; }
img.poster,.anime-poster,.player-poster,.slide-poster img,.reader-pages img,.shot img,.collection-cover img,.franchise img { opacity:0; transition:opacity .45s ease; }
img.poster.ready,.anime-poster.ready,.player-poster.ready,.slide-poster img.ready,.reader-pages img.ready,.shot img.ready,.collection-cover img.ready,.franchise img.ready,img.failed { opacity:1; }
.failed { object-fit:contain!important; background:var(--surface-2) url("/app/yorumi-logo.webp") center/38% no-repeat; color:transparent; opacity:.7!important; }
.card-poster .badge { position:absolute; top:8px; left:8px; }
.card-poster .badge.soft { left:auto; right:8px; }
.card-poster .rank { position:absolute; left:8px; bottom:8px; font-family:var(--display); font-size:30px; line-height:1; color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.8),0 0 2px #000; }
.progress-tag { position:absolute; left:0; right:0; bottom:0; height:4px; background:rgba(255,255,255,.18); }
.progress-tag::after { content:""; position:absolute; left:0; top:0; bottom:0; width:var(--ratio,0%); background:var(--accent-2); }
.card h3 { margin:10px 0 4px; font-size:14px; line-height:1.4; height:40px; overflow-wrap:normal; word-break:normal; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; transition:color .15s; }
.card-meta { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; font-weight:600; white-space:nowrap; overflow:hidden; }
.card-meta .year { color:var(--accent-2); }
.card-meta i { width:3px; height:3px; border-radius:50%; background:var(--faint); }
.continue-rail { display:flex; gap:12px; overflow:auto; padding:4px 2px 12px; scrollbar-width:none; }
.continue-card { flex:0 0 340px; display:flex; align-items:center; gap:14px; padding:10px; border-radius:var(--r-m); background:var(--surface); border:1px solid var(--line); transition:border-color .2s,background-color .2s; }
.continue-card:hover { border-color:var(--accent-line); background:var(--surface-2); }
.continue-card .poster { width:56px; aspect-ratio:2/3; border-radius:10px; flex:none; }
.continue-copy { flex:1; min-width:0; }
.continue-copy b { display:block; font-size:14px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.continue-copy small { display:block; color:var(--muted); font-size:12px; margin:2px 0 8px; }
.bar { display:block; height:4px; border-radius:2px; background:rgba(255,255,255,.12); position:relative; overflow:hidden; }
.bar::after { content:""; position:absolute; inset:0; width:var(--ratio,0%); background:linear-gradient(90deg,var(--accent),var(--accent-2)); }
.continue-play { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--accent); color:#fff; flex:none; }
.tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; }
.tile { position:relative; display:flex; flex-direction:column; gap:6px; min-height:170px; padding:22px; border-radius:var(--r-l); background:linear-gradient(160deg,var(--surface-2),var(--surface)); border:1px solid var(--line); overflow:hidden; transition:border-color .2s,transform .3s var(--ease-spring); }
.tile::before { content:""; position:absolute; right:-40px; top:-40px; width:160px; height:160px; border-radius:50%; background:radial-gradient(circle,var(--accent-soft),transparent 70%); }
.tile.alt::before { background:radial-gradient(circle,rgba(56,189,248,.25),transparent 70%); }
.tile.promo::before { background:radial-gradient(circle,rgba(250,204,21,.2),transparent 70%); }
.tile:hover { border-color:var(--accent-line); transform:translateY(-3px); }
.tile-kicker { color:var(--accent-2); font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; }
.tile b { font-size:26px; overflow-wrap:normal; }
.tile p { color:var(--muted); font-size:13px; max-width:300px; }
.tile i { position:absolute; right:18px; bottom:18px; width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--raise-2); }

/* Каталог */
.filters-card { padding:18px; border-radius:var(--r-l); background:var(--surface); border:1px solid var(--line); margin:0 0 22px; display:flex; flex-direction:column; gap:14px; }
.filters-head { display:flex; align-items:center; justify-content:space-between; }
.filters-head b { display:flex; align-items:center; gap:10px; font-size:16px; }
.filters-head b svg { width:32px; height:32px; padding:7px; border-radius:10px; background:var(--accent-soft); color:var(--accent-2); }
.search { display:flex; align-items:center; gap:10px; min-height:50px; padding:0 6px 0 14px; border-radius:14px; border:1px solid var(--line-2); background:var(--surface-2); transition:border-color .15s; }
.search:focus-within { border-color:var(--accent-line); }
.search-icon { color:var(--muted); display:grid; }
.search input { flex:1; min-width:0; border:0; background:none; min-height:48px; padding:0; }
.search input:focus-visible { outline:none; }
.search button { width:38px; height:38px; border-radius:10px; background:var(--accent); color:#fff; display:grid; place-items:center; }
.filters-more summary { list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; font-weight:700; padding:6px 0; }
.filters-more summary::-webkit-details-marker { display:none; }
.filters-more summary svg { width:16px; height:16px; transition:transform .2s; }
.filters-more[open] summary svg { transform:rotate(180deg); }
.filters-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-top:12px; }
.filters-grid label { display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:700; color:var(--muted); }
.filters-grid select,.filters-grid input { width:100%; }
.genres-box { margin-top:16px; display:flex; flex-direction:column; gap:10px; }
.filters-actions { margin-top:16px; }
.result-count { color:var(--muted); font-size:13px; margin:0 0 14px; }

/* Расписание */
.schedule-hero { position:relative; padding:44px 40px; border-radius:var(--r-l); background:radial-gradient(ellipse at 80% 0%,var(--accent-soft),transparent 55%),var(--surface); border:1px solid var(--line); overflow:hidden; }
.schedule-hero h1 { font-size:44px; margin:14px 0 10px; }
.schedule-hero h1 em { color:var(--accent-2); }
.schedule-hero p { color:var(--muted); max-width:560px; }
.your-time { display:inline-flex; align-items:center; gap:12px; margin-top:22px; padding:12px 16px; border-radius:var(--r-m); background:var(--raise); border:1px solid var(--line); }
.your-time i { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent-2); }
.your-time small { display:block; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:1.1px; text-transform:uppercase; }
.your-time b { font-family:var(--display); font-weight:400; font-size:24px; line-height:1; }
.day-strip { display:flex; gap:8px; overflow:auto; padding:22px 2px 12px; scrollbar-width:none; }
.day { flex:0 0 78px; display:flex; flex-direction:column; align-items:center; gap:2px; padding:12px 8px; border-radius:16px; background:var(--surface); border:1px solid var(--line); color:var(--muted); transition:border-color .15s,background-color .15s,color .15s; }
.day small { font-size:11px; font-weight:800; letter-spacing:1px; }
.day b { font-family:var(--display); font-weight:400; font-size:24px; line-height:1.1; color:var(--text); }
.day.quiet { opacity:.5; }
.day.on { background:var(--accent); border-color:var(--accent); color:#fff; opacity:1; }
.day.on b { color:#fff; }
.agenda-head { display:flex; align-items:center; gap:12px; margin:8px 0 14px; }
.release-list { display:flex; flex-direction:column; gap:10px; }
.release-card { display:flex; align-items:center; gap:16px; padding:10px; border-radius:var(--r-m); background:var(--surface); border:1px solid var(--line); transition:border-color .2s,background-color .2s; }
.release-card:hover { border-color:var(--accent-line); background:var(--surface-2); }
.release-card.mine { border-color:var(--accent-line); }
.release-card .poster { width:88px; aspect-ratio:2/3; border-radius:10px; flex:none; }
.release-copy { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.release-top,.release-bottom { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.release-copy b { font-size:16px; }
.release-copy small { color:var(--muted); font-size:12px; }
.release-bottom { margin-top:4px; font-size:13px; }
.release-bottom .ep-label { font-weight:700; }
.status { display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:var(--r-pill); font-size:11px; font-weight:800; letter-spacing:.3px; }
.status.out { color:#86efac; background:rgba(34,197,94,.14); }
.status.soon { color:#fcd34d; background:rgba(250,204,21,.12); }
.status.mine { color:var(--accent-2); background:var(--accent-soft); }
.status svg { width:12px; height:12px; }
.release-card>i { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--raise); color:var(--muted); flex:none; }

/* Подборки */
.collection-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.collection-tile { display:flex; gap:16px; padding:16px; border-radius:var(--r-l); background:var(--surface); border:1px solid var(--line); transition:border-color .2s,transform .3s var(--ease-spring); }
.collection-tile:hover { border-color:var(--accent-line); transform:translateY(-3px); }
.collection-cover { position:relative; flex:none; width:110px; height:130px; }
.collection-cover img { position:absolute; top:calc(var(--i) * 8px); left:calc(var(--i) * 14px); width:78px; height:114px; object-fit:cover; border-radius:10px; box-shadow:0 8px 20px rgba(0,0,0,.5); border:1px solid var(--line); transform:rotate(calc(var(--i) * 3deg - 3deg)); }
.collection-copy { min-width:0; display:flex; flex-direction:column; gap:6px; }
.collection-copy i { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent-2); }
.collection-copy b { font-size:18px; line-height:1.2; overflow-wrap:normal; word-break:normal; hyphens:manual; text-wrap:balance; }
.collection-copy small { color:var(--muted); font-size:13px; }

/* Страница аниме */
.anime-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:32px; align-items:start; }
.anime-side { position:sticky; top:calc(var(--header) + 20px); display:flex; flex-direction:column; gap:14px; }
.poster-card { border-radius:var(--r-l); overflow:hidden; border:1px solid var(--line); background:var(--surface-2); box-shadow:0 30px 60px -20px rgba(0,0,0,.7); }
.anime-poster { display:block; width:100%; aspect-ratio:2/3; object-fit:cover; }
.side-actions { display:flex; flex-direction:column; gap:10px; }
.info-card { padding:16px; border-radius:var(--r-m); background:var(--surface); border:1px solid var(--line); display:flex; flex-direction:column; gap:10px; }
.info-card.next-episode { text-align:center; align-items:center; background:linear-gradient(160deg,var(--accent-soft),var(--surface)); border-color:var(--accent-line); }
.info-card.next-episode b { font-size:22px; color:var(--accent-2); }
.info-card.next-episode small { color:var(--muted); font-size:12px; }
.anime-main { min-width:0; }
.anime-main h1 { font-size:36px; margin:0 0 6px; }
.original { color:var(--muted); font-size:16px; font-weight:600; }
.synonyms { color:var(--faint); font-size:13px; margin-top:2px; }
.chips.genres { margin:0 0 18px; }
.description-box summary { list-style:none; cursor:pointer; }
.description-box summary::-webkit-details-marker { display:none; }
.description { color:rgba(250,250,250,.8); font-size:15px; line-height:1.75; white-space:pre-line; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:6; overflow:hidden; }
.description-box[open] .description { display:block; -webkit-line-clamp:unset; }
.more-hint { display:inline-block; margin-top:8px; color:var(--accent-2); font-size:13px; font-weight:700; }
.description-box[open] .more-hint,.description-box.fits .more-hint { display:none; }
.description-box.fits summary { pointer-events:none; }
.player-section { scroll-margin-top:calc(var(--header) + 12px); }
.player-card { border-radius:var(--r-l); background:var(--surface); border:1px solid var(--line); overflow:hidden; }
.player-stage { position:relative; aspect-ratio:16/9; background:#000; }
.player-frame { position:absolute; inset:0; width:100%; height:100%; border:0; }
.player-loading,.player-empty { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:14px; color:var(--muted); }
.player-loading { flex-direction:column; }
.player-loading i { width:30px; height:30px; border:3px solid var(--line); border-top-color:var(--accent-2); border-radius:50%; animation:spin .8s linear infinite; }
.player-empty { gap:24px; padding:24px; }
.player-poster { width:140px; aspect-ratio:2/3; object-fit:cover; border-radius:12px; flex:none; }
.player-poster.wide { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; border-radius:0; filter:blur(4px) brightness(.5); }
.player-empty-copy { max-width:420px; display:flex; flex-direction:column; gap:10px; }
.player-empty-copy b { color:var(--text); font-size:18px; }
.player-empty-copy p { font-size:13px; }
.player-cover { position:absolute; inset:0; width:100%; cursor:pointer; text-align:left; overflow:hidden; }
.player-cover>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .5s; }
.player-cover>img.ready { opacity:.9; }
.player-cover-shade { position:absolute; inset:0; background:linear-gradient(0deg,rgba(10,10,10,.95),rgba(10,10,10,.2) 60%); }
.player-cover-copy { position:absolute; left:22px; right:22px; bottom:20px; display:flex; flex-direction:column; gap:8px; }
.player-cover-copy b { font-size:18px; text-shadow:0 2px 12px rgba(0,0,0,.6); }
.player-cover-copy .badges { display:flex; gap:6px; flex-wrap:wrap; }
.big-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:76px; height:76px; border-radius:50%; display:grid; place-items:center; background:var(--accent); color:#fff; box-shadow:0 0 0 12px rgba(124,58,237,.25),0 20px 40px rgba(0,0,0,.5); transition:transform .3s var(--ease-spring); }
.big-play svg { width:32px; height:32px; fill:#fff; }
.player-cover:hover .big-play { transform:translate(-50%,-50%) scale(1.08); }
.player-switch { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:12px 14px; border-top:1px solid var(--line); }
.player-name { display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:0 14px; border-radius:12px; background:var(--raise); border:1px solid var(--line); font-size:14px; font-weight:700; color:var(--muted); }
.player-name.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.player-name.alt { color:var(--text); flex-direction:row; }
.player-name.alt small { color:var(--muted); font-weight:500; font-size:11px; }
.player-name.alt:hover { border-color:var(--accent-line); }
.autoplay { margin-left:auto; display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; font-weight:600; }
.autoplay input { accent-color:var(--accent); width:18px; height:18px; }
.episode-strip { display:flex; gap:8px; overflow:auto; padding:4px 14px 14px; scrollbar-width:thin; }
.ep { flex:none; min-width:46px; height:46px; padding:0 12px; border-radius:12px; background:var(--raise); border:1px solid var(--line); font-size:15px; font-weight:800; color:var(--muted); transition:background-color .15s,color .15s,border-color .15s,transform .15s var(--ease-spring); }
.ep:hover { color:var(--text); border-color:var(--line-2); }
.ep.seen { color:var(--text); border-color:var(--accent-line); }
.ep.on { background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:0 8px 20px -8px var(--accent); }
.translations { padding:16px 14px 6px; border-top:1px solid var(--line); }
.translations-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.translations-head b { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }
.mini-search { display:flex; align-items:center; gap:8px; min-height:40px; padding:0 12px; border-radius:12px; background:var(--surface-2); border:1px solid var(--line); color:var(--muted); flex:1; max-width:320px; }
.mini-search input { flex:1; min-width:0; border:0; background:none; color:var(--text); }
.mini-search input:focus-visible { outline:none; }
.translation-list { display:flex; flex-direction:column; gap:4px; margin-top:12px; }
.translation-list li { display:flex; align-items:center; gap:6px; border-radius:12px; transition:background-color .15s; }
.translation-list li:hover { background:var(--raise); }
.translation-list li.on { background:var(--accent); color:#fff; }
.translation-list .fav { width:40px; height:44px; display:grid; place-items:center; color:var(--faint); flex:none; }
.translation-list .fav.on { color:var(--star); } .translation-list .fav.on svg { fill:var(--star); }
.translation-list li.on .fav { color:rgba(255,255,255,.6); }
.translation-list .pick { flex:1; min-width:0; display:flex; align-items:center; gap:10px; min-height:44px; padding:0 12px 0 0; text-align:left; }
.tr-title { font-size:14px; font-weight:700; flex:1; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.translation-list .pick small { color:var(--muted); font-size:11px; }
.translation-list li.on .pick small,.translation-list li.on .badge.soft { color:#fff; }
.translation-list .badge.eps { min-width:34px; justify-content:center; }
.translation-list .provider { font-size:10px; font-weight:800; letter-spacing:.6px; text-transform:uppercase; color:var(--faint); flex:none; }
.translation-list li.on .provider { color:rgba(255,255,255,.7); }
.translation-list .pick small { flex:none; }

/* Плеер Ёруми */
.yp { position:absolute; inset:0; background:#000; overflow:hidden; outline:none; font-size:13px; user-select:none; }
.yp video { width:100%; height:100%; display:block; background:#000; }
.yp video::cue { background:rgba(0,0,0,.6); color:#fff; font-family:var(--font); font-size:1.05em; }
.yp-loading { position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; }
.yp-loading i { width:44px; height:44px; border:3px solid rgba(255,255,255,.2); border-top-color:var(--accent-2); border-radius:50%; animation:spin .8s linear infinite; }
.yp-bigplay { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:76px; height:76px; border-radius:50%; display:grid; place-items:center; background:var(--accent); color:#fff; box-shadow:0 0 0 12px rgba(124,58,237,.25),0 20px 40px rgba(0,0,0,.5); transition:opacity .2s,transform .3s var(--ease-spring); }
.yp-bigplay svg { width:32px; height:32px; fill:#fff; }
.yp.playing .yp-bigplay { opacity:0; pointer-events:none; transform:translate(-50%,-50%) scale(.8); }
.yp-flash { position:absolute; left:50%; top:38%; transform:translate(-50%,-50%); padding:8px 14px; border-radius:var(--r-pill); background:rgba(0,0,0,.6); font-weight:800; font-size:16px; pointer-events:none; }
.yp-skip { position:absolute; right:20px; bottom:82px; display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 18px; border-radius:12px; background:var(--accent); color:#fff; font-weight:800; font-size:14px; box-shadow:0 10px 30px rgba(0,0,0,.5); }
.yp-next { position:absolute; right:20px; bottom:82px; display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:14px; background:rgba(10,10,10,.9); border:1px solid var(--line-2); font-weight:700; }
.yp-next .cta,.yp-next .outline { min-height:40px; padding:8px 14px; font-size:13px; }
.yp-error { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:rgba(0,0,0,.85); text-align:center; padding:20px; }
.yp-error b { font-size:18px; } .yp-error p { color:var(--muted); font-size:13px; }
.yp-bar { position:absolute; left:0; right:0; bottom:0; padding:28px 14px 10px; background:linear-gradient(0deg,rgba(0,0,0,.85),transparent); transition:opacity .25s,transform .25s; }
.yp.idle .yp-bar,.yp.idle .yp-skip,.yp.idle .yp-flash { opacity:0; pointer-events:none; }
.yp.idle { cursor:none; }
.yp-seek { position:relative; height:18px; cursor:pointer; margin-bottom:6px; }
.yp-seek::before { content:""; position:absolute; left:0; right:0; top:7px; height:4px; border-radius:2px; background:rgba(255,255,255,.22); }
.yp-buffer,.yp-played { position:absolute; left:0; top:7px; height:4px; border-radius:2px; width:0; }
.yp-buffer { background:rgba(255,255,255,.35); }
.yp-played { background:linear-gradient(90deg,var(--accent),var(--accent-2)); }
.yp-knob { position:absolute; top:2px; width:14px; height:14px; margin-left:-7px; border-radius:50%; background:#fff; box-shadow:0 0 0 4px rgba(124,58,237,.35); transform:scale(0); transition:transform .15s; }
.yp-seek:hover .yp-knob,.yp:not(.idle) .yp-seek:active .yp-knob { transform:scale(1); }
.yp-row { display:flex; align-items:center; gap:2px; }
.yp-row button { width:40px; height:40px; border-radius:10px; display:grid; place-items:center; color:#fff; transition:background-color .15s; }
.yp-row button:hover { background:rgba(255,255,255,.12); }
.yp-row button:disabled { opacity:.35; }
.yp-row button svg { width:22px; height:22px; }
.yp-play svg { fill:#fff; }
.yp-text { width:auto!important; padding:0 10px; font-weight:800; font-size:13px; }
.yp-cc.on { color:var(--accent-2); }
.yp-time { padding:0 8px; font-weight:600; font-variant-numeric:tabular-nums; color:rgba(255,255,255,.85); }
.yp-time b { color:#fff; }
.yp-spacer { flex:1; }
.yp-menu { position:absolute; right:14px; bottom:64px; display:flex; flex-direction:column; min-width:120px; padding:6px; border-radius:12px; background:rgba(10,10,10,.95); border:1px solid var(--line-2); box-shadow:0 20px 50px rgba(0,0,0,.6); }
.yp-menu button { padding:9px 12px; border-radius:8px; text-align:left; font-weight:700; color:var(--muted); }
.yp-menu button:hover { background:rgba(255,255,255,.08); color:#fff; }
.yp-menu button.on { color:var(--accent-2); }
.yp:fullscreen { font-size:15px; }
.yp:fullscreen .yp-row button { width:48px; height:48px; }
@media (max-width:640px) {
  .yp-row [data-yp=back10],.yp-row [data-yp=fwd10],.yp-row [data-yp=pip],.yp-row [data-yp=speed],.yp-row [data-yp=prev] { display:none; }
  .yp-skip,.yp-next { right:10px; bottom:70px; }
  .yp-next span { display:none; }
}

.shots-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; }
.shot { position:relative; aspect-ratio:16/9; border-radius:12px; overflow:hidden; background:var(--surface-2); border:1px solid var(--line); }
.shot img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.shot:hover img { transform:scale(1.04); }
.shot.more { display:grid; place-items:center; font-family:var(--display); font-size:28px; color:var(--accent-2); background:var(--accent-soft); }
.franchise { display:flex; flex-direction:column; gap:6px; }
.franchise li { display:flex; align-items:center; gap:12px; }
.franchise .num { width:28px; text-align:center; font-family:var(--display); color:var(--faint); font-size:14px; flex:none; }
.franchise a { flex:1; min-width:0; display:flex; align-items:center; gap:12px; padding:8px; border-radius:12px; border:1px solid transparent; transition:background-color .15s,border-color .15s; }
.franchise a:hover { background:var(--raise); border-color:var(--line); }
.franchise li.current a { background:var(--accent-soft); border-color:var(--accent-line); }
.franchise img { width:40px; height:56px; object-fit:cover; border-radius:6px; flex:none; }
.franchise span { flex:1; min-width:0; }
.franchise b { display:block; font-size:14px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.franchise small { color:var(--muted); font-size:12px; }
.lightbox { position:fixed; inset:0; z-index:200; background:rgba(0,0,0,.92); display:grid; place-items:center; animation:enter .2s; }
.lightbox img { max-width:94vw; max-height:88vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.8); }
.lightbox-close { position:absolute; top:18px; right:18px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; display:grid; place-items:center; }
.lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; display:grid; place-items:center; }
.lightbox-nav.prev { left:18px; } .lightbox-nav.next { right:18px; }
.lightbox-count { position:absolute; bottom:18px; left:50%; transform:translateX(-50%); color:var(--muted); font-size:13px; font-weight:700; }

/* Скелетоны, пустые состояния */
.sk { display:block; position:relative; overflow:hidden; border-radius:var(--r-s); background:var(--surface-2); }
.sk::after { content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent); animation:shimmer 1.6s ease-in-out infinite; }
@keyframes shimmer { to { transform:translateX(100%); } }
.sk-card { min-width:0; }
.sk-poster { aspect-ratio:2/3; border-radius:var(--r-m); margin-bottom:10px; }
.sk-line { height:12px; margin:8px 0; border-radius:6px; } .sk-line.short { width:55%; }
.sk-rows { display:flex; flex-direction:column; gap:10px; } .sk-rows .sk-row { height:64px; border-radius:var(--r-m); }
.sk-text { max-width:720px; margin:0 auto; padding:34px 0; } .sk-text .sk-line { height:15px; margin:0 0 17px; }
.empty { min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px; padding:24px; color:var(--muted); font-size:14px; }
.empty h2 { color:var(--text); }
.empty-mark { width:76px; height:76px; border-radius:30%; opacity:.9; }

/* Тайтлы манги/ранобэ (старая карточка), просмотр AniLiberty, читалка */
.detail .back { margin-bottom:10px; }
.back { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; font-weight:600; color:var(--text); }
.universe-hero { position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:flex-end; gap:22px; min-height:360px; padding:28px; border-radius:var(--r-l); background:var(--surface); }
.universe-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:blur(18px) saturate(1.15); transform:scale(1.15); z-index:-2; opacity:0; transition:opacity .5s; }
.universe-bg.ready { opacity:.6; }
.universe-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(10,10,10,.5) 0%,rgba(10,10,10,.15) 30%,rgba(10,10,10,.85) 74%,var(--bg) 100%); }
.detail-cover { width:150px; aspect-ratio:2/3; object-fit:cover; flex:none; border-radius:var(--r-m); opacity:0; transition:opacity .45s; }
.detail-cover.ready { opacity:1; }
.detail-copy { min-width:0; }
.detail-copy h1 { font-size:34px; margin:10px 0 12px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.facts { display:flex; flex-wrap:wrap; gap:6px; }
.facts span { padding:5px 10px; border-radius:var(--r-pill); background:rgba(255,255,255,.1); font-size:12px; font-weight:600; }
.detail-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:34px; margin-top:22px; }
.detail-body .section { margin:0; }
.resume-main { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:var(--r-m); background:var(--surface); border:1px solid var(--accent-line); margin-bottom:14px; }
.resume-main i { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:var(--accent); color:#fff; }
.resume-main span { flex:1; min-width:0; } .resume-main small { display:block; color:var(--muted); font-size:12px; } .resume-main b { display:block; font-size:15px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.detail-actions { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 16px; }
.filters { display:flex; gap:8px; overflow:auto; scrollbar-width:none; margin:16px 0 18px; }
.filter { flex:none; min-height:38px; padding:8px 15px; border-radius:var(--r-pill); color:var(--muted); border:1px solid var(--line); background:var(--raise); font-size:14px; font-weight:600; }
.filter.active { background:var(--accent); border-color:var(--accent); color:#fff; }
.chapter-list { display:flex; flex-direction:column; max-height:70vh; overflow:auto; border-top:1px solid var(--line); scrollbar-width:thin; }
.chapter { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:56px; padding:10px 12px; border-bottom:1px solid var(--line); transition:background-color .14s; }
.chapter:hover { background:var(--raise); }
.chapter.current { background:var(--accent-soft); border-left:3px solid var(--accent-2); padding-left:9px; }
.chapter span { min-width:0; } .chapter b { display:block; font-size:14px; font-weight:600; }
.chapter small { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
.last-badge { color:var(--accent-2)!important; font-weight:700; }
.watch { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:24px; }
.player-box { position:relative; aspect-ratio:16/9; border-radius:var(--r-l); overflow:hidden; background:#000; }
.player-box video { width:100%; height:100%; display:block; background:#000; }
.player-box:fullscreen { border-radius:0; }
.skip-opening,.skip-ending { position:absolute; right:20px; bottom:76px; min-height:44px; padding:10px 18px; border-radius:12px; font-size:14px; font-weight:700; display:inline-flex; align-items:center; gap:8px; box-shadow:0 8px 24px rgba(0,0,0,.4); }
.skip-opening { background:var(--accent); color:#fff; }
.skip-ending { background:#fff; color:#0a0a0a; }
.watch-bar { margin-top:16px; }
.watch-title h1 { font-size:24px; } .watch-title p { color:var(--muted); font-size:14px; margin-top:4px; }
.watch-tools { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:14px; }
.watch-tools .outline { min-height:42px; padding:9px 14px; font-size:14px; }
.quality { display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; }
.quality select { min-height:42px; padding:8px 30px 8px 12px; }
.keys-hint { margin-top:14px; color:var(--muted); font-size:12px; }
.watch-side .section-head { margin-bottom:10px; }
.episode-list { display:flex; flex-direction:column; gap:6px; max-height:calc(100vh - 120px); overflow:auto; scrollbar-width:thin; padding-right:4px; }
.episode { display:flex; align-items:center; gap:12px; padding:8px; border-radius:12px; border:1px solid var(--line); background:var(--surface); transition:border-color .14s,background-color .14s; }
.episode:hover { background:var(--surface-2); }
.episode.current { border-color:var(--accent-line); background:var(--accent-soft); }
.episode-thumb { width:52px; height:36px; object-fit:cover; border-radius:6px; flex:none; }
.episode span { min-width:0; } .episode b { display:block; font-size:13px; font-weight:600; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.episode small { display:block; color:var(--muted); font-size:11px; margin-top:2px; }
.episode.current small { color:var(--accent-2); }
.reader { display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:24px; }
.reader-head { grid-column:1 / -1; position:sticky; top:var(--header); z-index:5; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0 12px; background:var(--bg); border-bottom:1px solid var(--line); }
.reader-head>div { display:flex; align-items:center; gap:10px; min-width:0; }
.reader-head span { min-width:0; } .reader-head b,.reader-head small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.reader-head b { font-size:15px; font-weight:600; } .reader-head small { color:var(--muted); font-size:12px; margin-top:2px; }
.reader-head .back { width:44px; height:44px; justify-content:center; border-radius:12px; border:1px solid var(--line-2); }
.reader-tools { display:flex; align-items:center; gap:8px; }
.reader-tools .outline { min-height:40px; padding:8px 12px; font-size:13px; }
.reader-tools>small { min-width:40px; text-align:right; font-weight:600; }
.reader-body { min-width:0; }
.reader-pages { max-width:900px; margin:0 auto; background:#050505; }
.reader-pages img { display:block; width:100%; height:auto; min-height:120px; }
.page-controls { position:sticky; top:calc(var(--header) + 74px); z-index:4; margin:10px auto; width:max-content; display:flex; align-items:center; gap:12px; padding:7px; border-radius:12px; background:var(--surface-2); border:1px solid var(--line); }
.page-controls button { width:44px; height:40px; border-radius:8px; border:1px solid var(--line-2); display:grid; place-items:center; }
.page-controls span { font-size:13px; min-width:64px; text-align:center; }
.novel-text { max-width:740px; margin:0 auto; padding:34px 26px 60px; font-family:Georgia,"Times New Roman",serif; font-size:var(--reader-font); line-height:1.82; }
.novel-text p { margin:0 0 1.3em; }
body.reader-paper .reader-body,body.reader-paper .reader-head,body.reader-paper .reader { background:#f5e9d7; color:#312829; }
body.reader-paper .reader-head { border-color:rgba(49,40,41,.14); }
body.reader-paper .reader-head small { color:#6b5a58; }
body.reader-paper .reader-head .back,body.reader-paper .reader-tools .outline { border-color:rgba(49,40,41,.22); color:#312829; background:none; }
body.reader-paper .novel-text { color:#312829; }
.chapter-end { max-width:740px; margin:0 auto; padding:24px 20px 20px; display:flex; gap:12px; justify-content:space-between; border-top:1px solid var(--line); }
.reader-side { position:sticky; top:calc(var(--header) + 80px); align-self:start; }
.reader-chapters { display:flex; flex-direction:column; gap:2px; margin-top:10px; }
.reader-chapters a { padding:8px 10px; border-radius:8px; color:var(--muted); font-size:13px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.reader-chapters a:hover { color:var(--text); background:var(--raise); }
.reader-chapters a.on { color:var(--accent-2); font-weight:700; }

/* Моё, профиль, подключение */
.library .chips { margin:6px 0 20px; }
.profile-hero { display:flex; align-items:center; gap:22px; padding:26px; border-radius:var(--r-l); background:radial-gradient(ellipse at 0% 0%,var(--accent-soft),transparent 60%),var(--surface); border:1px solid var(--line); margin-bottom:22px; }
.profile-hero img { width:96px; height:96px; border-radius:30%; box-shadow:0 0 0 4px var(--accent-soft); }
.profile-hero p { color:var(--muted); font-size:14px; margin-top:6px; }
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:14px; max-width:640px; margin:0 0 24px; }
.stat-grid div { padding:16px; border:1px solid var(--line); border-radius:var(--r-m); background:var(--surface); }
.stat-grid b { display:block; font-family:var(--display); font-weight:400; font-size:28px; color:var(--accent-2); }
.stat-grid span { color:var(--muted); font-size:13px; }
.panel { max-width:760px; padding:22px 0; border-top:1px solid var(--line); }
.panel .section-head h2 { font-family:var(--font); font-weight:800; font-size:20px; }
.panel p { color:var(--muted); font-size:14px; margin:0 0 14px; }
.panel .row input { flex:1; min-width:200px; }
.theme-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; }
.theme-chip { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:12px; border:1px solid var(--line); background:var(--surface); font-size:13px; font-weight:600; color:var(--muted); }
.theme-chip.active { border-color:var(--accent-line); color:var(--text); background:var(--accent-soft); }
.theme-chip i { width:22px; height:22px; border-radius:7px; flex:none; background:linear-gradient(135deg,#0a0a0a 50%,#7c3aed 50%); }
.theme-chip i[data-preview="sakura"] { background:linear-gradient(135deg,#0a0a0a 50%,#ec4899 50%); }
.theme-chip i[data-preview="momoiro"] { background:linear-gradient(135deg,#120a10 50%,#f472b6 50%); }
.theme-chip i[data-preview="glass"] { background:linear-gradient(135deg,#070b16 50%,#38bdf8 50%); }
.theme-chip i[data-preview="midnight"] { background:linear-gradient(135deg,#05070f 50%,#6366f1 50%); }
.theme-chip i[data-preview="shonen"] { background:linear-gradient(135deg,#0a0c08 50%,#84cc16 50%); }
.theme-chip i[data-preview="zen"] { background:linear-gradient(135deg,#0a0f10 50%,#2dd4bf 50%); }
.theme-chip i[data-preview="amoled"] { background:linear-gradient(135deg,#000 50%,#7c3aed 50%); }
.theme-chip i[data-preview="aurora"] { background:linear-gradient(135deg,#04110f 50%,#34d399 50%); }
.theme-chip i[data-preview="yokai"] { background:linear-gradient(135deg,#0d0611 50%,#e11d48 50%); }
.about { display:flex; align-items:center; gap:12px; margin:26px 0 8px; color:var(--muted); }
.about img { width:36px; height:36px; border-radius:30%; } .about b { color:var(--text); font-size:14px; } .about p { font-size:12px; margin-top:3px; }
/* ---------- Вход и регистрация ---------- */
.auth { position:relative; min-height:calc(100vh - var(--header) - 60px); display:grid; place-items:center; padding:24px 0; }
.auth-card { position:relative; z-index:1; width:min(460px,100%); padding:34px 32px 30px; border-radius:var(--r-l); border:1px solid var(--line); background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 50%),var(--surface); box-shadow:0 30px 80px rgba(0,0,0,.45); animation:rise .6s var(--ease-out) both; }
.auth-brand { display:inline-flex; align-items:center; gap:10px; margin-bottom:22px; color:var(--text); }
.auth-brand img { width:40px; height:40px; border-radius:30%; box-shadow:0 0 0 4px var(--accent-soft); }
.auth-brand strong { font-size:20px; font-weight:400; }
.auth-card h1 { font-size:30px; margin-bottom:8px; }
.auth-lead { color:var(--muted); font-size:14px; line-height:1.6; margin-bottom:22px; }
.auth-form { display:flex; flex-direction:column; gap:14px; }
.auth-form .cta { margin-top:6px; }
.auth-switch { margin-top:18px; color:var(--muted); font-size:14px; text-align:center; }
.auth-art { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.orb { position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; animation:float 14s ease-in-out infinite alternate; }
.orb.a { width:420px; height:420px; left:-120px; top:-60px; background:var(--accent); }
.orb.b { width:360px; height:360px; right:-100px; bottom:-40px; background:var(--accent-2); animation-delay:-5s; }
.orb.c { width:220px; height:220px; right:22%; top:8%; background:#38bdf8; opacity:.25; animation-delay:-9s; }
@keyframes float { from { transform:translate3d(0,0,0) scale(1); } to { transform:translate3d(30px,40px,0) scale(1.08); } }
@keyframes rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes fade-up { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.field { display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--muted); font-weight:600; min-width:0; }
.field>span b { color:var(--text); }
.field input,.field select,.field textarea { width:100%; font:inherit; font-weight:500; color:var(--text); }
.field textarea { min-height:44px; padding:10px 14px; border-radius:12px; border:1px solid var(--line-2); background:var(--surface-2); resize:vertical; line-height:1.5; }
.field input[type=range] { min-height:0; padding:0; border:0; background:none; accent-color:var(--accent); }
.field.compact { flex:none; width:150px; } .field.grow { flex:1; min-width:180px; }
.form-error { padding:10px 14px; border-radius:12px; background:rgba(248,113,113,.12); border:1px solid rgba(248,113,113,.35); color:#fecaca; font-size:13px; font-weight:600; }
.stack { display:flex; flex-direction:column; gap:14px; }
.toggle { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border-radius:var(--r-m); border:1px solid var(--line); background:var(--surface); cursor:pointer; }
.toggle span { display:flex; flex-direction:column; gap:2px; } .toggle b { font-size:14px; } .toggle small { color:var(--muted); font-size:12px; }
.toggle input { position:absolute; opacity:0; width:0; height:0; }
.toggle i { flex:none; width:44px; height:26px; border-radius:var(--r-pill); background:var(--raise-2); border:1px solid var(--line-2); position:relative; transition:background-color .2s,border-color .2s; }
.toggle i::after { content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:var(--text); transition:transform .2s var(--ease-spring); }
.toggle input:checked+i { background:var(--accent); border-color:var(--accent); } .toggle input:checked+i::after { transform:translateX(18px); }
.toggle input:focus-visible+i { outline:2px solid var(--accent-2); outline-offset:2px; }

/* ---------- Объявление ---------- */
.announce { position:sticky; top:var(--header); z-index:60; display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; padding:10px 48px 10px 16px; background:linear-gradient(90deg,var(--accent),var(--accent-2)); color:#fff; font-size:14px; font-weight:600; text-align:center; }
.announce a { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.announce button { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:32px; height:32px; border-radius:50%; background:rgba(0,0,0,.2); color:#fff; font-size:20px; line-height:1; }

/* ---------- Личный кабинет и админка ---------- */
.avatar { width:44px; height:44px; border-radius:30%; flex:none; } .avatar.small { width:30px; height:30px; } .avatar.big { width:112px; height:112px; border-radius:32%; box-shadow:0 0 0 5px var(--accent-soft),0 20px 40px rgba(0,0,0,.4); }
.avatar-btn .avatar { width:32px; height:32px; }
.account-hero { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:24px; padding:28px; border-radius:var(--r-l); background:radial-gradient(ellipse at 0% 0%,var(--accent-soft),transparent 60%),var(--surface); border:1px solid var(--line); margin-bottom:18px; animation:fade-up .5s var(--ease-out) both; }
.account-copy h1 { font-size:32px; margin:4px 0 6px; } .account-copy p { color:var(--muted); font-size:14px; }
.account-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.tabs { display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; padding:4px; margin:0 0 22px; border-radius:var(--r-m); background:var(--raise); border:1px solid var(--line); }
.tabs::-webkit-scrollbar { display:none; }
.tab { flex:none; display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:8px 16px; border-radius:10px; color:var(--muted); font-size:14px; font-weight:600; white-space:nowrap; transition:color .15s,background-color .15s; }
.tab svg { width:16px; height:16px; } .tab:hover { color:var(--text); background:var(--raise-2); } .tab.on { color:var(--text); background:var(--surface-2); box-shadow:0 1px 0 var(--line-2) inset,0 4px 14px rgba(0,0,0,.25); }
.tab-body { animation:fade-up .45s var(--ease-out) both; }
.tab-body .panel { max-width:none; padding:24px; border:1px solid var(--line); border-radius:var(--r-l); background:var(--surface); margin-bottom:16px; }
.tab-body .panel .section-head { margin-bottom:14px; } .tab-body .panel .section-head h2 { font-size:18px; }
.two-col { display:grid; grid-template-columns:repeat(auto-fit,minmax(400px,1fr)); gap:16px; align-items:start; }
@media (max-width:999px) { .admin-nav { flex-wrap:wrap; } }
@media (max-width:460px) { .two-col { grid-template-columns:1fr; } }
.two-col .panel { margin-bottom:0; }
.stat-grid.wide { max-width:none; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.list-links { display:flex; flex-direction:column; gap:8px; }
.list-link { display:flex; align-items:center; gap:14px; padding:12px 14px; border-radius:var(--r-m); background:var(--raise); border:1px solid var(--line); color:var(--text); transition:background-color .15s,transform .15s var(--ease-spring); }
.list-link:hover { background:var(--raise-2); transform:translateX(2px); }
.list-link b { font-family:var(--display); font-weight:400; font-size:20px; min-width:36px; color:var(--accent-2); } .list-link span { flex:1; font-weight:600; font-size:14px; } .list-link svg { width:18px; height:18px; color:var(--muted); }
.fav-list { display:flex; flex-direction:column; gap:6px; } .fav-list li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 8px 8px 14px; border-radius:12px; background:var(--raise); font-weight:600; font-size:14px; }
.fav-list .icon-btn { width:34px; height:34px; } .fav-list .icon-btn svg { width:14px; height:14px; }
.sync-note { display:block; margin-top:16px; line-height:1.6; } .sync-note svg { width:14px; height:14px; vertical-align:-2px; margin-right:4px; }
.avatar-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(72px,1fr)); gap:10px; }
.avatar-pick { padding:6px; border-radius:20px; border:2px solid transparent; background:var(--raise); transition:transform .15s var(--ease-spring),border-color .15s; }
.avatar-pick .avatar { width:100%; height:auto; aspect-ratio:1; } .avatar-pick:hover { transform:translateY(-2px) scale(1.03); } .avatar-pick.on { border-color:var(--accent-2); background:var(--accent-soft); }
.session-list { display:flex; flex-direction:column; gap:8px; }
.session-list li { display:flex; align-items:center; gap:14px; padding:12px 14px; border-radius:var(--r-m); background:var(--raise); border:1px solid var(--line); }
.session-list li.current { border-color:var(--accent-line); } .session-list i { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; background:var(--surface-2); color:var(--accent-2); flex:none; }
.session-list i svg { width:18px; height:18px; } .session-list span { flex:1; display:flex; flex-direction:column; min-width:0; } .session-list b { font-size:14px; } .session-list small { color:var(--muted); font-size:12px; }
.outline.small,.cta.small { min-height:36px; padding:6px 12px; font-size:13px; border-radius:10px; }
.outline.danger { border-color:rgba(248,113,113,.4); color:#fca5a5; } .outline.danger:hover { background:rgba(248,113,113,.12); }
.icon-btn.tiny { width:26px; height:26px; display:inline-grid; vertical-align:middle; } .icon-btn.tiny svg { width:12px; height:12px; }
.kv { display:grid; grid-template-columns:1fr auto; gap:8px 16px; margin:0 0 16px; font-size:14px; } .kv dt { color:var(--muted); } .kv dd { font-weight:700; text-align:right; } .kv dd.ok { color:var(--ok); } .kv dd.warn { color:#fbbf24; }
.table { width:100%; border-collapse:collapse; font-size:13px; } .table th { text-align:left; color:var(--muted); font-weight:600; padding:8px 10px; border-bottom:1px solid var(--line); }
.table td { padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:middle; } .table tr:last-child td { border-bottom:0; } .table tr.spent td { color:var(--faint); } .table code { font-size:12px; }
.top-list { counter-reset:top; display:flex; flex-direction:column; gap:6px; } .top-list li { counter-increment:top; display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:12px; background:var(--raise); font-size:14px; }
.top-list li::before { content:counter(top); width:22px; color:var(--accent-2); font-family:var(--display); font-size:13px; } .top-list .top-title { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .top-list b { color:var(--muted); font-weight:600; }
.error-list { display:flex; flex-direction:column; gap:6px; max-height:420px; overflow:auto; } .error-list li { display:grid; grid-template-columns:auto 1fr; gap:2px 12px; padding:8px 12px; border-radius:12px; background:var(--raise); font-size:13px; }
.error-list small { color:var(--faint); grid-row:span 2; align-self:center; font-size:12px; min-width:84px; } .error-list b { font-weight:600; } .error-list code { color:var(--muted); font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-search { margin-bottom:12px; max-width:520px; }
.user-list { display:flex; flex-direction:column; gap:10px; }
.user-row { display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; padding:14px 16px; border-radius:var(--r-m); background:var(--surface); border:1px solid var(--line); }
.user-row.banned { opacity:.7; } .user-copy { min-width:0; display:flex; flex-direction:column; gap:3px; } .user-copy b { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:15px; } .user-copy small { color:var(--muted); font-size:12px; } .user-copy .about { color:var(--faint); }
.user-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.password-note { grid-column:1/-1; margin:4px 0 0; } .password-note code { font-size:14px; user-select:all; }
.invite-form { align-items:flex-end; }
.choice-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
.choice { display:flex; flex-direction:column; gap:4px; padding:14px 16px; border-radius:var(--r-m); border:1px solid var(--line); background:var(--raise); cursor:pointer; transition:border-color .15s,background-color .15s; }
.choice input { position:absolute; opacity:0; } .choice b { font-size:14px; } .choice small { color:var(--muted); font-size:12px; } .choice.on { border-color:var(--accent-line); background:var(--accent-soft); }
.choice:has(input:focus-visible) { outline:2px solid var(--accent-2); }
.progress { height:8px; border-radius:var(--r-pill); background:var(--raise-2); overflow:hidden; } .progress i { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--accent),var(--accent-2)); transition:width .2s; }
.check-list { display:flex; flex-direction:column; gap:8px; margin:0 0 14px; } .check-list li { display:flex; align-items:center; gap:12px; padding:10px 14px; border-radius:var(--r-m); background:var(--raise); }
.check-list i { width:10px; height:10px; border-radius:50%; background:var(--faint); flex:none; } .check-list li.ok i { background:var(--ok); box-shadow:0 0 0 4px rgba(34,197,94,.18); } .check-list li.bad i { background:var(--danger); box-shadow:0 0 0 4px rgba(248,113,113,.18); }
.check-list span { flex:1; display:flex; flex-direction:column; } .check-list small { color:var(--muted); font-size:12px; } .check-list li>b { color:var(--muted); font-weight:600; font-size:13px; }
.sha { font-size:12px; }
input[type=file] { width:100%; min-height:48px; padding:6px; border-radius:12px; border:1px dashed var(--line-2); background:var(--surface-2); color:var(--muted); font-size:13px; }
input[type=file]::file-selector-button { border:0; border-radius:9px; padding:9px 14px; margin-right:12px; background:var(--accent); color:#fff; font:inherit; font-weight:700; cursor:pointer; }
@media (min-width:1000px) {
  .admin-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:24px; align-items:start; }
  .admin-nav { position:sticky; top:calc(var(--header) + 16px); flex-direction:column; gap:4px; padding:8px; }
  .admin-nav .tab { justify-content:flex-start; padding:10px 14px; }
}
.toast { position:fixed; z-index:300; top:calc(var(--header) + 10px); left:50%; transform:translate(-50%,-140px); max-width:calc(100% - 32px); padding:13px 18px; border-radius:14px; background:var(--text); color:var(--bg); font-size:14px; font-weight:700; transition:.3s var(--ease-spring); box-shadow:0 12px 32px rgba(0,0,0,.5); }
.toast.show { transform:translate(-50%,0); }

/* Планшет */
@media (max-width:1100px) {
  .top-nav a { padding:8px 9px; font-size:13px; }
  .top-search { width:220px; }
  .slide-inner { grid-template-columns:1fr; }
  .slide-poster { display:none; }
  .anime-layout { grid-template-columns:240px minmax(0,1fr); gap:22px; }
}
/* Телефон: нижняя навигация с плавающим поиском, меню-бургер, поиск оверлеем */
@media (max-width:900px) {
  body { padding-bottom:calc(var(--bottom-nav) + env(safe-area-inset-bottom,0px)); }
  .top-inner { padding:0 16px; gap:10px; }
  /* Шапка с backdrop-filter — containing block для fixed-потомков, поэтому высота задаётся явно, а не через bottom:0 */
  .top-nav { position:fixed; top:var(--header); left:0; right:0; height:calc(100vh - var(--header)); height:calc(100dvh - var(--header)); overflow:auto; z-index:69; flex-direction:column; gap:4px; padding:16px 16px 40px; background:var(--bg); background:color-mix(in srgb,var(--bg) 97%,transparent); backdrop-filter:blur(18px); transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .2s,transform .25s var(--ease-out); }
  body.menu-open .top-nav { opacity:1; transform:none; pointer-events:auto; }
  .top-nav a { font-size:18px; padding:14px 16px; border-radius:14px; }
  .top-nav .menu-only { display:block; }
  .top-search { position:absolute; left:16px; right:16px; top:calc(var(--header) + 8px); width:auto; height:50px; background:var(--surface-2); opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity .2s,transform .2s; z-index:71; box-shadow:0 20px 50px rgba(0,0,0,.5); }
  body.search-open .top-search { opacity:1; pointer-events:auto; transform:none; }
  .top-tools { margin-left:auto; }
  .top-tools [data-search-toggle],.burger { display:grid; }
  .desktop-only { display:none!important; }
  .view { padding:16px 16px 40px; }
  body.immersive .view { padding:10px 12px 40px; }
  h1.display { font-size:26px; }
  .section { margin:28px 0 0; }
  .section-head h2 { font-size:22px; }
  .section-head .arrow { display:none; }
  .hero-slider { min-height:460px; margin:0 -16px; border-radius:0; }
  .slide-inner { min-height:460px; padding:28px 20px 40px; }
  .slide h2 { font-size:28px; }
  .slide-dots { left:20px; }
  .slide-arrow { display:none; }
  .sk-hero { min-height:460px; margin:0 -16px; border-radius:0; }
  .grid { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:20px 10px; }
  .rail .card,.rail .sk-card { flex-basis:150px; }
  .continue-card { flex-basis:300px; }
  /* Телефон и планшет: постер и название рядом, действия под ними, дальше плеер — как в мобильных приложениях */
  .anime-layout { display:flex; flex-wrap:wrap; flex-direction:row; align-items:flex-start; gap:14px; }
  .anime-side,.anime-main { display:contents; }
  .anime-layout>*>* { order:20; width:100%; }
  .anime-layout>.anime-side>.poster-card { order:1; width:min(38%,180px); margin:0; }
  .anime-layout>.anime-main>.title-block { order:1; width:calc(100% - min(38%,180px) - 14px); }
  .anime-layout .title-block h1 { font-size:24px; margin:0 0 4px; }
  .anime-layout>.anime-side>.side-actions { order:2; }
  .anime-layout>.anime-side>.info-card.next-episode { order:3; }
  .anime-layout>.anime-main>.chips.genres { order:4; margin:0; }
  .anime-layout>.anime-main>.description-box,.anime-layout>.anime-main>.soft-note { order:5; }
  .anime-layout>.anime-main>.section.player-section { order:6; margin-top:6px; }
  .anime-layout>.anime-side>.info-card { order:7; }
  .anime-layout>.anime-main>.section { order:8; }
  .schedule-hero { padding:28px 20px; }
  .schedule-hero h1 { font-size:34px; }
  .release-card .poster { width:70px; }
  .filters-card { padding:14px; }
  .player-empty { flex-direction:column; text-align:center; }
  .player-empty-copy { align-items:center; }
  .detail-body,.watch,.reader { grid-template-columns:1fr; }
  .universe-hero { margin:0 -16px; border-radius:0; min-height:320px; padding:20px 16px; gap:14px; }
  .detail-cover { width:104px; } .detail-copy h1 { font-size:24px; }
  .watch-side { order:2; } .episode-list { max-height:none; } .reader-side { display:none; }
  .player-box { border-radius:0; margin:0 -12px; }
  .profile-hero { flex-direction:column; text-align:center; }
  .account-hero { grid-template-columns:auto 1fr; padding:20px; gap:16px; }
  .account-hero .avatar.big { width:76px; height:76px; } .account-copy h1 { font-size:24px; }
  .account-actions { grid-column:1/-1; justify-content:flex-start; }
  .tab-body .panel { padding:18px 16px; border-radius:20px; }
  .user-row { grid-template-columns:auto 1fr; } .user-actions { grid-column:1/-1; justify-content:flex-start; }
  .auth-card { padding:26px 20px 22px; } .auth { min-height:calc(100vh - var(--header) - var(--bottom-nav) - 24px); }
  .announce { position:static; }
  .kv { grid-template-columns:1fr; gap:2px; } .kv dd { text-align:left; margin-bottom:8px; }
  .table { display:block; overflow-x:auto; white-space:nowrap; }
  .bottom-nav { position:fixed; z-index:68; left:0; right:0; bottom:0; height:calc(var(--bottom-nav) + env(safe-area-inset-bottom,0px)); padding-bottom:env(safe-area-inset-bottom,0px); display:grid; grid-template-columns:repeat(5,1fr); background:rgba(10,10,10,.97); backdrop-filter:blur(18px); border-top:1px solid var(--line); transition:transform .3s var(--ease-out); }
  body.nav-hidden .bottom-nav { transform:translateY(110%); }
  .bottom-nav a,.bottom-nav .fab { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:6px 2px 0; color:var(--muted); font-size:10.5px; font-weight:600; line-height:1; white-space:nowrap; letter-spacing:-.1px; transition:color .15s; }
  .bottom-nav a i,.bottom-nav .fab i { display:grid; place-items:center; width:52px; height:30px; border-radius:var(--r-pill); transition:background-color .2s,transform .2s var(--ease-spring); }
  .bottom-nav svg { width:22px; height:22px; }
  .bottom-nav a.on { color:var(--accent-2); }
  .bottom-nav a.on i { background:var(--accent-soft); }
  .bottom-nav a:active i,.bottom-nav .fab:active i { transform:scale(.92); }
  .bottom-nav .fab { color:var(--muted); }
  .bottom-nav .fab i { background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; box-shadow:0 8px 20px -8px var(--accent-2); }
  body.search-open .bottom-nav .fab { color:var(--accent-2); }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; } }
