/* Поток — Mini App. Тёмная тема 2026, «потоковый» аврора-градиент. */
:root{
  --bg:#0b0b12;
  --bg2:#12121d;
  --surface:rgba(255,255,255,.05);
  --surface2:rgba(255,255,255,.08);
  --stroke:rgba(255,255,255,.09);
  --text:#f3f3f8;
  --muted:#9a9ab0;
  --accent:#7C5CFF;
  --accent2:#21D4FD;
  --like:#FF4D7D;
  --grad:linear-gradient(135deg,#7C5CFF 0%,#21D4FD 100%);
  --grad-soft:linear-gradient(135deg,rgba(124,92,255,.25),rgba(33,212,253,.18));
  --nav-h:62px;
  --mini-h:60px;
  --sat:env(safe-area-inset-top,0px);
  --sab:env(safe-area-inset-bottom,0px);
  --app-h:100dvh;
  --app-w:480px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;margin:0}
body{
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,system-ui,sans-serif;
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
  user-select:none;
}
img{display:block;background:#1c1c2a;object-fit:cover}
button{font-family:inherit;color:inherit;border:none;background:none;cursor:pointer}
.hidden{display:none !important}

body{background:#000}
#app{
  position:fixed;top:0;left:0;right:0;margin-inline:auto;
  width:100%;max-width:var(--app-w);height:var(--app-h);
  display:flex;flex-direction:column;overflow:hidden;
  background:
    radial-gradient(120% 60% at 50% -10%,rgba(124,92,255,.16),transparent 60%),
    var(--bg);
}

/* ── ШАПКА ── */
#topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(var(--sat) + 12px) 16px 10px;flex:0 0 auto;
}
.brand{font-size:22px;font-weight:800;letter-spacing:.3px;display:flex;gap:7px;align-items:center}
.brand .wave{filter:drop-shadow(0 2px 8px rgba(33,212,253,.5))}
.icon-btn{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  color:var(--text);transition:.15s;flex:0 0 auto;
}
.icon-btn:active{transform:scale(.9);background:var(--surface)}
.icon-btn svg{width:22px;height:22px}
.icon-btn.primary{background:var(--grad);color:#0b0b12;box-shadow:0 6px 18px rgba(124,92,255,.4)}
#btn-profile{background:var(--surface);font-weight:700;font-size:15px}

/* ── ЭКРАНЫ ── */
#screens{flex:1 1 auto;position:relative;overflow:hidden}
.screen{
  position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;
  padding:4px 0 calc(var(--nav-h) + var(--mini-h) + var(--sab) + 18px);
  display:none;-webkit-overflow-scrolling:touch;
}
.screen.active{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.screen-title{font-size:24px;font-weight:800;margin:8px 16px 14px}

/* ── ПОЛКИ (главная) ── */
.shelf{margin:6px 0 22px}
.shelf-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 16px 10px}
.shelf-title{font-size:19px;font-weight:800}
.shelf-sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.shelf-row{display:flex;gap:13px;overflow-x:auto;padding:2px 16px 4px;scrollbar-width:none}
.shelf-row::-webkit-scrollbar{display:none}

.card{flex:0 0 auto;width:142px}
.card img{width:142px;height:142px;border-radius:16px;box-shadow:0 8px 22px rgba(0,0,0,.45)}
.card .c-title{font-size:13.5px;font-weight:600;margin-top:8px;line-height:1.25;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .c-sub{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* большая полка «Поток» */
.shelf.big .hero{
  margin:0 16px;border-radius:22px;padding:18px;position:relative;overflow:hidden;
  background:var(--grad-soft);border:1px solid var(--stroke);
}
.shelf.big .hero h3{margin:0;font-size:22px;font-weight:800}
.shelf.big .hero p{margin:4px 0 14px;font-size:13px;color:var(--muted)}
.hero-play{
  background:var(--grad);color:#0b0b12;font-weight:800;font-size:14px;
  padding:11px 20px;border-radius:30px;display:inline-flex;gap:8px;align-items:center;
  box-shadow:0 8px 22px rgba(124,92,255,.45);
}
.hero-mini{display:flex;gap:9px;margin-top:16px;overflow-x:auto;scrollbar-width:none}
.hero-mini::-webkit-scrollbar{display:none}
.hero-mini img{width:64px;height:64px;border-radius:12px;flex:0 0 auto}

/* ── СТРОКА ТРЕКА ── */
.track{
  display:flex;align-items:center;gap:12px;padding:9px 16px;transition:.12s;
}
.track:active{background:var(--surface)}
.track img{width:48px;height:48px;border-radius:10px;flex:0 0 auto}
.track .t-meta{flex:1 1 auto;min-width:0}
.track .t-title{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track .t-sub{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.track .t-title.playing{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.track .t-more{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.track .t-more:active{background:var(--surface2)}

/* ── ПОИСК ── */
.search-head{position:sticky;top:0;z-index:5;background:linear-gradient(var(--bg),rgba(11,11,18,.85));
  backdrop-filter:blur(12px);padding:6px 16px 10px}
.search-box{display:flex;align-items:center;gap:10px;background:var(--surface2);
  border:1px solid var(--stroke);border-radius:14px;padding:11px 14px}
.search-box input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:16px}
.search-box input::placeholder{color:var(--muted)}
.search-ic{width:18px;height:18px;color:var(--muted);display:grid;place-items:center}
.search-clear{color:var(--muted);font-size:15px;width:24px;height:24px}
.scopes{display:flex;gap:8px;margin-top:12px;overflow-x:auto;scrollbar-width:none}
.scopes::-webkit-scrollbar{display:none}
.scope{padding:7px 15px;border-radius:30px;background:var(--surface);font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}
.scope.active{background:var(--grad);color:#0b0b12}
.suggest{padding:6px 16px}
.suggest .sug{padding:11px 4px;font-size:15px;color:var(--text);display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--stroke)}
.suggest .sug .si{color:var(--muted)}

/* карточки альбомов/артистов в поиске */
.grid-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px 16px}
.gc img{width:100%;aspect-ratio:1;border-radius:14px}
.gc.round img{border-radius:50%}
.gc .gc-t{font-size:13.5px;font-weight:600;margin-top:8px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc .gc-s{font-size:12px;color:var(--muted);text-align:center}

/* ── МЕДИАТЕКА ── */
.lib-tabs{display:flex;gap:7px;padding:0 16px 14px}
.lib-tab{flex:1;min-width:0;padding:10px 4px;border-radius:30px;background:var(--surface);font-size:13px;font-weight:600;
  text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-tab.active{background:var(--surface2);box-shadow:inset 0 0 0 1.5px var(--accent)}
.section-empty{text-align:center;color:var(--muted);padding:60px 30px;font-size:15px;line-height:1.5}
.pl-create{display:flex;gap:10px;padding:6px 16px 14px}
.pl-create input{flex:1;background:var(--surface2);border:1px solid var(--stroke);border-radius:12px;padding:12px;color:var(--text);font-size:15px;outline:none}
.pl-create button{background:var(--grad);color:#0b0b12;font-weight:700;border-radius:12px;padding:0 18px}
.pl-row{display:flex;align-items:center;gap:13px;padding:9px 16px}
.pl-row .pl-cover{width:54px;height:54px;border-radius:12px;background:var(--grad-soft);display:grid;place-items:center;font-size:22px;overflow:hidden}
.pl-row .pl-cover img{width:100%;height:100%}
.pl-row .pl-name{font-weight:600;font-size:15.5px}
.pl-row .pl-count{font-size:12.5px;color:var(--muted);margin-top:2px}

/* ── МИНИ-ПЛЕЕР ── */
#miniplayer{
  position:absolute;left:8px;right:8px;bottom:calc(var(--nav-h) + var(--sab) + 6px);
  height:var(--mini-h);background:rgba(28,28,42,.82);backdrop-filter:blur(18px);
  border:1px solid var(--stroke);border-radius:16px;display:flex;align-items:center;
  gap:11px;padding:0 8px 0 8px;z-index:30;box-shadow:0 10px 30px rgba(0,0,0,.45);
  animation:slideUp .25s ease;
}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
.mini-progress{position:absolute;top:0;left:10px;right:10px;height:2px;background:var(--stroke);border-radius:2px;overflow:hidden}
#mini-progress-fill{height:100%;width:0;background:var(--grad)}
#mini-art{width:44px;height:44px;border-radius:10px;flex:0 0 auto}
.mini-meta{flex:1;min-width:0}
.mini-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-artist{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── НИЖНЕЕ МЕНЮ ── */
#nav{
  position:absolute;left:0;right:0;bottom:0;height:calc(var(--nav-h) + var(--sab));
  padding-bottom:var(--sab);display:flex;background:rgba(13,13,20,.92);
  backdrop-filter:blur(18px);border-top:1px solid var(--stroke);z-index:25;
}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;color:var(--muted);font-weight:600}
.nav-item .ni{width:24px;height:24px}
.nav-item.active{color:var(--text)}
.nav-item.active .ni{color:var(--accent2)}

/* ── ПОЛНЫЙ ПЛЕЕР ── */
#player{position:fixed;top:0;bottom:0;left:0;right:0;margin-inline:auto;width:100%;max-width:var(--app-w);z-index:60;transform:translateY(100%);transition:transform .32s cubic-bezier(.3,.8,.3,1);overflow:hidden}
#player:not(.hidden){transform:translateY(0)}
.player-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(48px) saturate(1.4) brightness(.55);transform:scale(1.4)}
.player-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(11,11,18,.4),rgba(11,11,18,.92))}
.player-inner{position:relative;height:100%;display:flex;flex-direction:column;
  padding:calc(var(--sat) + 10px) 26px calc(var(--sab) + 22px)}
.player-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:auto}
.player-ctx{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:1.4px;font-weight:700}
.art-wrap{display:grid;place-items:center;margin:14px 0}
#player-art{width:min(74vw,40vh,340px);height:min(74vw,40vh,340px);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.55)}
.lyrics-pane{position:absolute;inset:calc(var(--sat) + 60px) 22px calc(var(--sab) + 200px);
  overflow-y:auto;background:rgba(11,11,18,.55);backdrop-filter:blur(8px);border-radius:18px;
  padding:22px;font-size:17px;line-height:1.9;white-space:pre-wrap;text-align:center;z-index:4}
.player-meta{margin:22px 4px 8px}
.player-title{font-size:21px;font-weight:600;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-artist{font-size:16px;color:rgba(255,255,255,.6);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seek{margin:14px 0 6px}
input[type=range]#seek{width:100%;-webkit-appearance:none;height:5px;border-radius:6px;
  background:rgba(255,255,255,.2);outline:none}
input[type=range]#seek::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.time-row{display:flex;justify-content:space-between;font-size:12px;color:rgba(255,255,255,.5);margin-top:9px}
.controls{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px}
.controls .icon-btn{width:52px;height:52px;color:#fff}
.controls .icon-btn svg{width:32px;height:32px}
.play-big{width:74px !important;height:74px !important;background:#fff;color:#0b0b12;border-radius:50%;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.play-big svg{width:36px !important;height:36px !important}
.icon-btn.on{color:var(--accent2)}
.controls-top{display:flex;justify-content:center;gap:46px;margin-bottom:2px}
.controls-top .icon-btn{width:40px;height:40px;color:var(--muted)}
.controls-top .icon-btn svg{width:21px;height:21px}
.controls-top .icon-btn.on{color:var(--accent2)}
.rate-ctl{width:50px;height:50px;display:grid;place-items:center;color:rgba(255,255,255,.5);flex:0 0 auto;transition:.18s}
.rate-ctl svg{width:25px;height:25px;stroke-width:1.9}
.rate-ctl:active{transform:scale(.84)}
#rate-like.on{color:#fff}
#rate-like.on svg{fill:#fff}
#rate-dislike.on{color:#fff}
#rate-dislike.on svg{fill:#fff}
.player-actions{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding-top:8px}
.player-actions::-webkit-scrollbar{display:none}
.pill{flex:0 0 auto;padding:10px 16px;border-radius:30px;background:rgba(255,255,255,.1);
  border:none;font-size:13px;font-weight:600;display:inline-flex;gap:6px;align-items:center;white-space:nowrap;color:rgba(255,255,255,.92)}
.pill.liked{color:var(--like)}
.pill.on{background:rgba(255,255,255,.24);color:#fff}

/* ── ШТОРКА ── */
.sheet{position:fixed;inset:0;z-index:80}
.sheet-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);animation:fade .2s}
.sheet-body{position:absolute;left:0;right:0;bottom:0;margin-inline:auto;max-width:520px;max-height:80vh;background:var(--bg2);
  border-radius:22px 22px 0 0;padding:10px 0 calc(var(--sab) + 16px);
  border-top:1px solid var(--stroke);animation:sheetUp .28s cubic-bezier(.3,.8,.3,1);
  display:flex;flex-direction:column;overflow:hidden}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
.sheet-handle{width:40px;height:4px;border-radius:4px;background:var(--stroke);margin:6px auto 10px;flex:0 0 auto}
#sheet-content{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.sheet-title{font-size:18px;font-weight:800;padding:6px 20px 12px}
.sheet-item{display:flex;align-items:center;gap:14px;padding:14px 20px;font-size:15.5px}
.sheet-item:active{background:var(--surface)}
.sheet-item .si-ic{width:22px;height:22px;color:var(--muted);display:grid;place-items:center}
.sheet-track{display:flex;align-items:center;gap:12px;padding:9px 20px}
.sheet-track img{width:44px;height:44px;border-radius:9px}
.sheet-track.current .st-title{color:var(--accent2)}

/* ── ПРОЧЕЕ ── */
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + var(--mini-h) + 30px);transform:translateX(-50%);
  background:rgba(40,40,58,.96);color:#fff;padding:12px 20px;border-radius:30px;font-size:14px;
  z-index:200;box-shadow:0 10px 30px rgba(0,0,0,.5);animation:fade .2s;max-width:80vw;text-align:center}
.loader{position:fixed;inset:0;display:grid;place-items:center;z-index:150;background:rgba(11,11,18,.4)}
.spinner{width:40px;height:40px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:var(--accent2);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.skeleton{background:linear-gradient(90deg,#1a1a28,#22223400,#1a1a28);background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{to{background-position:-200% 0}}
.heart-on{color:var(--like) !important}

/* ── Эквалайзер ── */
.eq-presets{display:flex;gap:8px;overflow-x:auto;padding:4px 20px 14px;scrollbar-width:none}
.eq-presets::-webkit-scrollbar{display:none}
.eq-preset{flex:0 0 auto;padding:8px 14px;border-radius:30px;background:var(--surface);font-size:13px;font-weight:600;white-space:nowrap;color:var(--muted)}
.eq-preset.active{background:var(--grad);color:#0b0b12}
.eq-bands{display:flex;justify-content:space-between;gap:6px;padding:6px 20px 16px;height:170px}
.eq-band{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}
.eq-band input[type=range]{-webkit-appearance:none;writing-mode:vertical-lr;direction:rtl;width:8px;flex:1;
  background:var(--surface2);border-radius:8px;outline:none}
.eq-band input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--grad);box-shadow:0 2px 8px rgba(0,0,0,.4)}
.eq-band .eq-hz{font-size:10.5px;color:var(--muted)}
.eq-row{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;font-size:15px}
.eq-row .switch{width:46px;height:28px;border-radius:30px;background:var(--surface2);position:relative;transition:.2s;flex:0 0 auto}
.eq-row .switch.on{background:var(--accent)}
.eq-row .switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s}
.eq-row .switch.on::after{left:21px}
.eq-slider-row{padding:6px 20px 16px}
.eq-slider-row input[type=range]{width:100%;-webkit-appearance:none;height:6px;border-radius:6px;background:var(--surface2)}
.eq-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--grad)}

/* ── Совместное прослушивание ── */
.party-banner{position:absolute;left:8px;right:8px;bottom:calc(var(--nav-h) + var(--mini-h) + var(--sab) + 12px);
  background:var(--grad);color:#06121a;border-radius:14px;padding:10px 14px;z-index:31;
  display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:700;box-shadow:0 10px 30px rgba(33,212,253,.4)}
.party-banner .pb-x{margin-left:auto;font-weight:800;opacity:.7}
.party-room{display:flex;align-items:center;gap:13px;padding:12px 20px}
.party-room .pr-ava{width:46px;height:46px;border-radius:50%;background:var(--grad-soft);display:grid;place-items:center;font-size:20px;font-weight:800}
.party-room .pr-join{margin-left:auto;background:var(--grad);color:#0b0b12;font-weight:700;padding:8px 16px;border-radius:30px;font-size:13px}
.party-big{padding:18px 20px;text-align:center}
.party-big .pb-emoji{font-size:40px}
.party-big .pb-status{font-size:16px;font-weight:700;margin:8px 0 4px}
.party-big .pb-sub{font-size:13px;color:var(--muted);margin-bottom:14px}

/* ── Чипы похожих артистов ── */
.artist-chips{display:flex;gap:10px;overflow-x:auto;padding:6px 20px 16px;scrollbar-width:none}
.artist-chips::-webkit-scrollbar{display:none}
.artist-chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:7px;width:84px}
.artist-chip .ac-ava{width:74px;height:74px;border-radius:50%;background:var(--grad-soft);display:grid;place-items:center;font-size:28px;font-weight:800;overflow:hidden}
.artist-chip .ac-ava img{width:100%;height:100%}
.artist-chip .ac-name{font-size:12px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}

/* ── Загрузки ── */
.dl-badge{font-size:11px;color:var(--accent2);margin-left:6px}
.btn-row{display:flex;gap:10px;padding:10px 16px}
.btn-row .hero-play{flex:1;justify-content:center}

/* ── Экран входа (браузер) ── */
#login{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:32px;background:radial-gradient(120% 60% at 50% 0%,rgba(124,92,255,.2),transparent 60%),var(--bg)}
#login .lg-logo{font-size:64px;filter:drop-shadow(0 4px 16px rgba(33,212,253,.6))}
#login h1{font-size:32px;font-weight:800;margin:10px 0 4px;letter-spacing:.5px}
#login p{color:var(--muted);font-size:15px;line-height:1.5;max-width:300px;margin:0 0 28px}
#login .lg-btn{display:inline-flex;align-items:center;gap:10px;background:#2AABEE;color:#fff;font-size:16px;font-weight:700;
  padding:15px 28px;border-radius:30px;box-shadow:0 10px 30px rgba(42,171,238,.45)}
#login .lg-btn:active{transform:scale(.97)}
#login .lg-wait{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--muted);font-size:15px}
#login .lg-link{color:var(--accent2);font-size:14px;margin-top:18px;text-decoration:underline}
#login .lg-err{color:#ff7a7a;font-size:14px;margin-top:14px}

/* ── Широкий режим (обычный браузер, не Telegram) ── */
body.browser{--app-w:100%}
@media (min-width:760px){
  body.browser #topbar,
  body.browser #home-shelves,
  body.browser #search-results,
  body.browser #library-content,
  body.browser .screen-title,
  body.browser .search-head{max-width:1160px;margin-inline:auto;width:100%}
  body.browser .lib-tabs{max-width:540px;margin-inline:auto}
  body.browser #nav{justify-content:center;gap:26px;background:rgba(13,13,20,.96)}
  body.browser .nav-item{flex:0 0 auto;min-width:150px;flex-direction:row;gap:9px;font-size:14px}
  body.browser #miniplayer{left:0;right:0;margin-inline:auto;width:calc(100% - 24px);max-width:780px}
  body.browser .player-inner{max-width:540px;margin-inline:auto;width:100%}
  body.browser #player-art{width:min(44vh,360px);height:min(44vh,360px)}
  body.browser .shelf-row,body.browser .grid-cards{padding-left:0;padding-right:0}
  body.browser .grid-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  body.browser .lyrics-pane{inset:calc(var(--sat) + 60px) 22px calc(var(--sab) + 210px);max-width:540px;margin-inline:auto}
}

/* ── Онбординг (опрос при первом входе) ── */
#onb{position:fixed;inset:0;z-index:250;overflow-y:auto;
  background:radial-gradient(120% 50% at 50% 0%,rgba(124,92,255,.22),transparent 60%),var(--bg)}
.onb-inner{max-width:600px;margin:0 auto;padding:calc(var(--sat) + 34px) 22px calc(var(--sab) + 110px);text-align:center}
.onb-inner .o-emoji{font-size:54px;filter:drop-shadow(0 4px 14px rgba(33,212,253,.5))}
.onb-inner h2{font-size:26px;font-weight:800;margin:10px 0 4px}
.onb-inner .o-sub{color:var(--muted);font-size:15px;margin-bottom:22px}
.genre-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:11px}
.genre{padding:15px 8px;border-radius:16px;background:var(--surface2);border:1px solid var(--stroke);font-weight:600;font-size:13px;transition:.12s}
.genre:active{transform:scale(.96)}
.genre.sel{background:var(--grad-soft);box-shadow:inset 0 0 0 2px var(--accent)}
.genre .g-emoji{font-size:26px;display:block;margin-bottom:6px}
.onb-go{position:fixed;left:0;right:0;bottom:0;margin-inline:auto;max-width:600px;padding:14px 22px calc(var(--sab) + 16px);
  background:linear-gradient(transparent,var(--bg) 30%)}
.onb-go button{width:100%;background:var(--grad);color:#0b0b12;font-weight:800;font-size:16px;padding:16px;border-radius:30px;box-shadow:0 8px 24px rgba(124,92,255,.45)}
.onb-go button:disabled{opacity:.5}
.onb-skip{display:block;margin:14px auto 0;color:var(--muted);font-size:14px;text-decoration:underline;background:none}

/* ── Караоке (синхронные тексты) ── */
.lyrics-pane.synced{text-align:center;font-size:16px;line-height:1.5;padding:30px 22px 60px}
.lrc-line{padding:9px 4px;color:var(--muted);opacity:.55;transition:.25s;font-weight:600;font-size:18px}
.lrc-line.active{color:var(--text);opacity:1;transform:scale(1.04)}
.lrc-line.active::after{content:"";display:block;width:34px;height:3px;border-radius:3px;background:var(--grad);margin:8px auto 0}
.lrc-plain{white-space:pre-wrap;text-align:center;font-size:17px;line-height:1.9;color:var(--text)}

/* ── Визуализатор ── */
#viz{position:absolute;left:0;right:0;bottom:0;width:100%;height:120px;z-index:1;opacity:.85;pointer-events:none}

/* ── Жанры/настроения (Обзор) ── */
.browse-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px}
.browse-tile{border-radius:16px;padding:16px;min-height:96px;display:flex;align-items:flex-end;font-weight:800;font-size:16px;
  color:#fff;position:relative;overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.browse-sec-title{font-size:18px;font-weight:800;padding:14px 16px 4px}

/* ── Лента друзей ── */
.friend-head{display:flex;align-items:center;gap:10px;padding:0 16px 8px}
.friend-head .fh-ava{width:30px;height:30px;border-radius:50%;background:var(--grad-soft);display:grid;place-items:center;font-weight:800;font-size:14px}
.friend-head .fh-name{font-weight:700;font-size:14px}
.friend-head .fh-now{font-size:12px;color:var(--accent2);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50%}

/* ── Таймер сна ── */
.sleep-opt{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;font-size:15px}
.sleep-opt.active{color:var(--accent2);font-weight:700}
