
:root{
  --bg:#0b0d12; --bg2:#111722; --card:#121823; --card2:#18212d; --text:#ffffff; --muted:#a7b0bd;
  --line:rgba(255,255,255,.08); --accent:#f0a12b; --accent2:#ffd48b; --radius:24px; --shadow:0 20px 52px rgba(0,0,0,.34);
}
[data-theme="light"]{
  --bg:#f4f6fa; --bg2:#eef2f8; --card:#ffffff; --card2:#f8fafc; --text:#111827; --muted:#667085;
  --line:rgba(17,24,39,.08); --accent:#e69a1f; --accent2:#f7ca82; --shadow:0 18px 42px rgba(15,23,42,.10);
}
*{box-sizing:border-box}
html,body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}
body{
  background:
    radial-gradient(circle at top left, rgba(240,161,43,.14), transparent 18%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);
  min-height:100dvh;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
button{font:inherit}
.app{max-width:820px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 12px) 12px calc(env(safe-area-inset-bottom) + 86px)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.brand h1{margin:0;font-size:28px;line-height:1;font-weight:800;letter-spacing:-.05em}
.brand p{margin:6px 0 0;color:var(--muted);font-size:14px}
.top-actions{display:flex;gap:8px;align-items:center}
.pill,.theme-toggle{
  border:1px solid var(--line); background:rgba(255,255,255,.03); color:var(--text); border-radius:16px;
}
.pill{padding:11px 14px;font-size:13px;font-weight:700}
.theme-toggle{width:44px;height:44px;display:grid;place-items:center;cursor:pointer;position:relative}
.theme-toggle svg{width:20px;height:20px;position:absolute}
.icon-sun{opacity:0;transform:scale(.8)} .icon-moon{opacity:1;transform:scale(1)}
[data-theme="light"] .icon-sun{opacity:1;transform:scale(1)}
[data-theme="light"] .icon-moon{opacity:0;transform:scale(.8)}
.card{
  background:linear-gradient(180deg,var(--card),var(--card2));
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.hero{display:grid;grid-template-columns:148px 1fr;gap:12px;align-items:stretch}
.cover{overflow:hidden}
.cover img{width:100%;height:100%;min-height:148px;object-fit:cover}
.main{padding:16px;display:flex;flex-direction:column;gap:12px}
.badge{
  display:inline-flex;width:max-content;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03);color:#f7d191;font-size:12px;font-weight:700
}
.main h2{margin:0;font-size:clamp(28px,8vw,42px);line-height:.95;letter-spacing:-.055em}
.main p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.meta-row{display:flex;gap:8px;flex-wrap:wrap}
.meta-pill{padding:8px 10px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:12px;color:var(--muted)}
.hero-play{
  display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:14px 16px;border-radius:999px;font-weight:800;font-size:16px;border:none;cursor:pointer;background:var(--accent);color:#000
}
.player{margin-top:12px;padding:16px}
.player-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.player-head strong{font-size:16px}
.player-head span{display:block;color:var(--muted);font-size:13px;margin-top:4px}
.row{display:flex;gap:12px;align-items:center}
.mini-cover{width:58px;height:58px;border-radius:16px;overflow:hidden;flex:0 0 auto;border:1px solid var(--line)}
.mini-cover img{width:100%;height:100%;object-fit:cover}
.mini-meta strong{display:block;font-size:15px;margin-bottom:4px}
.mini-meta span{display:block;color:var(--muted);font-size:13px}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.info-chip, .action-chip{
  min-height:46px;padding:11px 12px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:10px
}
.action-chip button{
  background:none;border:none;padding:0;color:inherit;cursor:pointer;font:inherit;font-weight:700
}
.rating-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stars{display:inline-flex;gap:4px}
.star{
  font-size:20px;line-height:1;color:#ffcd75;opacity:.28;cursor:pointer;user-select:none;transition:transform .12s ease, opacity .12s ease
}
.star:hover{transform:scale(1.08)}
.progress{margin-top:12px;height:12px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
.bar{width:0%;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .15s linear}
.time{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:13px;margin-top:8px;font-variant-numeric:tabular-nums}
.controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.control{
  appearance:none;border:none;border-radius:999px;padding:14px 16px;font:inherit;font-weight:800;cursor:pointer;min-height:48px
}
.control.play{background:var(--accent);color:#000}
.control.secondary{border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text)}
.speed-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.speed-btn{
  appearance:none;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);border-radius:14px;padding:10px 12px;font:inherit;font-weight:700;cursor:pointer
}
.speed-btn.active{background:rgba(240,161,43,.16);border-color:rgba(240,161,43,.35)}
.message{margin-top:10px;color:var(--muted);font-size:13px;min-height:1.2em}
.hidden-audio{display:none}
.footer{margin-top:16px;text-align:center;color:var(--muted);font-size:13px}
.bottom-nav{
  position:fixed;left:0;right:0;bottom:0;padding:10px 12px calc(env(safe-area-inset-bottom) + 10px);background:rgba(10,12,16,.92);backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.06)
}
[data-theme="light"] .bottom-nav{background:rgba(244,246,250,.92)}
.bottom-nav .inner{max-width:820px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.bottom-nav a{
  text-align:center;padding:12px 10px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);font-size:13px;font-weight:700
}
.bottom-nav a.active{color:var(--text);background:rgba(240,161,43,.12);border-color:rgba(240,161,43,.22)}
@media (max-width:560px){
  .hero{grid-template-columns:1fr}
  .cover img{min-height:auto;aspect-ratio:1/1}
  .stats-grid{grid-template-columns:1fr}
  .controls{grid-template-columns:1fr}
}
