:root{
  --bg:#1c1712; --bg2:#241c15; --panel:#2c2219; --panel2:#352a1f;
  --wood:#8b5a2b; --wood-l:#a9713a; --gold:#e0b050; --gold-d:#c9973b;
  --text:#efe6d6; --muted:#b3a288; --line:#403223; --shadow:rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background:
    radial-gradient(1200px 600px at 70% -10%, #2e2318 0%, transparent 60%),
    var(--bg);
  color:var(--text); font-family:"Segoe UI",system-ui,sans-serif; -webkit-font-smoothing:antialiased;
}
/* ---------- Fejléc ---------- */
.topbar{
  position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:18px;
  padding:10px 20px; background:linear-gradient(180deg,#251d15,#1f1810);
  border-bottom:1px solid var(--line); box-shadow:0 4px 18px var(--shadow);
}
.brand{display:flex; align-items:center; gap:10px}
.logo{width:44px; height:44px; border-radius:10px; box-shadow:0 2px 8px var(--shadow)}
.brand-name{font-size:22px; font-weight:700; letter-spacing:.5px; color:var(--gold)}
.tabs{display:flex; gap:14px; align-items:flex-start}
.tabcol{display:flex; flex-direction:column; align-items:center; gap:3px}
.tab{
  background:transparent; color:var(--muted); border:1px solid transparent; border-radius:20px;
  padding:7px 16px; font-size:15px; font-weight:600; cursor:pointer; transition:.15s;
}
.tab:hover{color:var(--text)}
.tab.active{color:#231a12; background:linear-gradient(180deg,var(--gold),var(--gold-d)); box-shadow:0 2px 8px var(--shadow)}
.ftab{display:flex; align-items:center; justify-content:center; background:transparent; border:none; cursor:pointer;
  color:var(--muted); padding:3px 12px; border-radius:12px; transition:.15s}
.ftab .fico{width:22px; height:22px; fill:currentColor}
.ftab:hover{background:var(--panel)}
.ftab.hoerf{color:var(--gold-d)}
.ftab.mp3f{color:#5bb0c0}
.ftab.active{background:var(--panel2)}
.ftab.hoerf.active{color:var(--gold)}
.ftab.mp3f.active{color:#8bd6e6}
/* Fa mappa-ikon (finomított, SVG) */
.trow .fico{width:17px; height:17px; flex:0 0 auto}
.trow.tdir .fico{fill:var(--gold-d)}
.trow.hoerdir .fico{fill:var(--gold-d)}
.trow.mp3dir .fico{fill:#5bb0c0}
.trow.tfile .fico{fill:var(--muted)}
.search-wrap{margin-left:auto}
#search{
  background:var(--panel); border:1px solid var(--line); color:var(--text);
  border-radius:20px; padding:8px 16px; width:230px; font-size:14px; outline:none;
}
#search:focus{border-color:var(--gold-d)}
.cache-badge{
  font-size:12px; color:var(--muted); background:var(--panel); border:1px solid var(--line);
  border-radius:14px; padding:5px 10px; white-space:nowrap;
}
/* ---------- Rács ---------- */
.grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:18px;
  padding:22px; max-width:1400px; margin:0 auto;
}
.card{
  background:var(--panel); border:1px solid var(--line); border-radius:14px; overflow:hidden;
  cursor:pointer; transition:transform .15s, box-shadow .15s, border-color .15s; text-align:left;
}
.card:hover{transform:translateY(-4px); box-shadow:0 10px 24px var(--shadow); border-color:var(--wood-l)}
.card .cov{aspect-ratio:1/1; width:100%; background:#15100b center/cover no-repeat; display:block}
.card .cov.ph{display:flex; align-items:center; justify-content:center; font-size:34px; color:var(--wood-l)}
.card .cap{padding:9px 11px 12px}
.card .t{font-size:13.5px; font-weight:600; line-height:1.25; margin:0 0 3px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.card .a{font-size:12px; color:var(--muted); margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.card .badge{font-size:11px; color:var(--gold); margin-top:4px}
.empty{text-align:center; color:var(--muted); padding:40px}
/* Fa-nézet */
.tree{max-width:900px; margin:0 auto; padding:6px 4px}
.tkids{margin-left:20px; border-left:1px solid var(--line); padding-left:6px}
.trow{display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:8px; cursor:pointer; font-size:14px}
.trow:hover{background:var(--panel)}
.trow .tw{width:14px; color:var(--gold); font-size:11px; flex:0 0 auto}
.trow .tname{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.trow.tdir .tname{font-weight:600}
.trow.tfile{color:var(--muted)}
.trow.tfile:hover{color:var(--text)}
.tcount{font-size:11px; color:var(--gold); background:var(--panel2); border-radius:10px; padding:1px 8px; flex:0 0 auto}
.trow .fmark{width:17px; text-align:center; color:var(--gold-d); flex:0 0 auto}
/* Sorok (Folytatás / Kedvencek) */
#rows{max-width:1400px; margin:0 auto; padding:8px 22px 0}
.row{margin-bottom:6px}
.row h2{font-size:16px; color:var(--gold); margin:14px 4px 8px; display:flex; align-items:center; gap:8px}
.row-scroll{display:flex; gap:14px; overflow-x:auto; padding:4px; scrollbar-width:thin}
.row-scroll .card{flex:0 0 130px; width:130px}
/* Csempe kedvenc-csillag + típusjelző */
.card{position:relative}
.card .star{position:absolute; top:6px; right:6px; z-index:2; background:rgba(20,14,9,.6);
  border:none; color:var(--gold); width:30px; height:30px; border-radius:50%; font-size:15px; cursor:pointer;
  opacity:0; transition:.15s}
.card:hover .star, .card .star.on{opacity:1}
.card .star.on{color:var(--gold)}
.card .parts{position:absolute; top:6px; left:6px; z-index:2; background:rgba(20,14,9,.72); color:var(--cream);
  font-size:11px; padding:2px 7px; border-radius:10px}
/* Gradient placeholder borító nélkül */
.cov.gen{display:flex; align-items:center; justify-content:center; font-size:38px; color:#fff8; position:relative}
.cov.gen span{position:absolute; bottom:8px; left:8px; right:8px; font-size:12px; color:#fffc; text-align:center;
  line-height:1.2; text-shadow:0 1px 3px #0008; -webkit-line-clamp:2; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden}
.favbtn{background:none; border:none; color:var(--gold); font-size:26px; cursor:pointer; vertical-align:middle; margin-left:4px}
.favbtn.on{color:var(--gold)}
.transcript{margin-top:24px}
.tr-ctl{display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); flex-wrap:wrap}
.tr-ctl input{width:54px; background:var(--panel2); border:1px solid var(--line); color:var(--text); border-radius:8px; padding:4px 6px}
.tr-result{margin-top:10px; font-size:14px; line-height:1.6; color:var(--text)}
.tr-result .tr-text{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px 14px; white-space:pre-wrap; max-height:280px; overflow-y:auto; margin-bottom:8px}
.tr-result .tr-hu{border-color:var(--gold-d); background:var(--panel2)}
.tr-actions{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px}
.tr-result em{color:var(--gold)}
/* ---------- Lejátszó ---------- */
.player{position:fixed; inset:0; z-index:40; background:linear-gradient(180deg,#221a12,#181209);
  overflow-y:auto; animation:fade .2s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.player-bar{position:sticky; top:0; z-index:5; padding:12px 20px;
  background:linear-gradient(180deg,#271e15,#211a12f2); border-bottom:1px solid var(--line);
  box-shadow:0 4px 16px var(--shadow); backdrop-filter:blur(4px)}
.backbtn{background:linear-gradient(180deg,var(--gold),var(--gold-d)); color:#231a10; border:none;
  border-radius:24px; padding:11px 22px; font-size:15px; font-weight:700; cursor:pointer;
  box-shadow:0 2px 10px var(--shadow); display:inline-flex; align-items:center; gap:8px}
.backbtn:hover{filter:brightness(1.08); transform:translateY(-1px)}
.backbtn:active{transform:translateY(0)}
.player-inner{max-width:1000px; margin:0 auto; padding:40px 22px 60px; display:flex; gap:30px; flex-wrap:wrap}
.player-cover{flex:0 0 260px; max-width:100%}
.player-cover img{width:260px; height:260px; max-width:100%; border-radius:16px; object-fit:cover;
  box-shadow:0 14px 40px var(--shadow); background:#15100b}
.player-main{flex:1; min-width:280px}
.player-main h2{margin:0 0 6px; font-size:24px; line-height:1.2}
.pmeta{color:var(--gold); margin:0 0 14px; font-size:14px}
.pdesc{color:var(--muted); font-size:14px; line-height:1.5; margin:0 0 20px;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden}
.transport{display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap}
.transport button{background:var(--panel2); color:var(--text); border:1px solid var(--line);
  border-radius:22px; padding:10px 16px; font-size:14px; font-weight:600; cursor:pointer}
.transport button:hover{background:var(--wood)}
.playbtn{width:56px; height:56px; border-radius:50%!important; font-size:20px!important;
  background:linear-gradient(180deg,var(--gold),var(--gold-d))!important; color:#221a10!important; border:none!important}
#pSpeed{background:var(--panel2); color:var(--text); border:1px solid var(--line); border-radius:18px; padding:9px 10px}
.seek{display:flex; align-items:center; gap:12px; margin-bottom:26px}
.seek span{font-variant-numeric:tabular-nums; color:var(--muted); font-size:13px; min-width:42px}
#pSeek{flex:1; accent-color:var(--gold)}
.panels{display:grid; grid-template-columns:1fr 1fr; gap:24px}
.panel h3{font-size:15px; margin:0 0 10px; color:var(--gold); display:flex; align-items:center; gap:10px}
.mini{background:var(--panel2); color:var(--text); border:1px solid var(--line); border-radius:14px;
  padding:3px 10px; font-size:12px; cursor:pointer}
.mini:hover{background:var(--wood)}
.chapters,.notes{list-style:none; margin:0; padding:0; max-height:300px; overflow-y:auto}
.chapters li,.notes li{padding:8px 10px; border-radius:8px; cursor:pointer; font-size:13.5px;
  display:flex; justify-content:space-between; gap:10px; border:1px solid transparent}
.chapters li:hover,.notes li:hover{background:var(--panel); border-color:var(--line)}
.chapters li.on{background:var(--panel2); border-color:var(--wood)}
.chapters .tm,.notes .tm{color:var(--gold); font-variant-numeric:tabular-nums; flex:0 0 auto}
.notes li .del{color:var(--muted); flex:0 0 auto}
.notes .txt{flex:1}
@media (max-width:620px){
  .panels{grid-template-columns:1fr}
  .player-cover{flex-basis:100%}
  .player-cover img{width:100%; height:auto; aspect-ratio:1/1}
  #search{width:150px}
  .brand-name{display:none}
}
