:root{--bg:#0f1117;--card:#171b26;--line:#262c3d;--text:#e9ecf4;--muted:#8f97ad;--accent:#ff7a45;--radius:14px}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--text);font:15px/1.55 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;min-height:100vh}

header{position:sticky;top:0;z-index:20;display:flex;gap:8px;align-items:center;padding:calc(8px + env(safe-area-inset-top)) 12px 10px;background:rgba(15,17,23,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{font-weight:800;font-size:16px;white-space:nowrap}
#search{flex:1;min-width:0;background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 12px;font-size:16px;outline:none}
#search:focus{border-color:var(--accent)}
#searchBtn{flex-shrink:0}

.tabs{display:flex;gap:8px;padding:10px 12px 0}
.tabs button{flex:1;padding:9px 0;background:var(--card);border:1px solid var(--line);color:var(--muted);border-radius:10px;font-size:14px;font-weight:600}
.tabs button.active{border-color:var(--accent);color:var(--text);background:#20263a}

main{padding:14px 12px calc(24px + env(safe-area-inset-bottom));max-width:960px;margin:0 auto}
.muted{color:var(--muted)}
.small{font-size:13px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:transform .12s}
.card:active{transform:scale(.98)}
.card img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#0b0d13;display:block}
.cmeta{padding:8px 10px}
.cmeta b{display:block;font-size:14px;line-height:1.35;max-height:2.7em;overflow:hidden}
.cmeta small{display:block;color:var(--muted);font-size:12px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-x{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:13px}

.btn{background:var(--accent);border:0;color:#fff;font-weight:600;padding:9px 12px;border-radius:10px;cursor:pointer;font-size:14px;text-decoration:none;display:inline-block;font-family:inherit}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}
.btn.small{padding:5px 8px;font-size:12px}
.btn.wide{width:100%;margin-top:14px}
.linkbtn{background:none;border:0;color:var(--muted);padding:2px 0;margin-bottom:6px;font-size:14px;cursor:pointer;font-family:inherit}

.detail .dhead{display:flex;gap:14px}
.detail .dhead img{width:130px;max-width:34%;border-radius:12px;flex-shrink:0}
.detail h2{margin:.1em 0 .2em;font-size:20px}
.detail h3{margin:18px 0 8px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.chips span{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}

.eps{list-style:none;margin:0;padding:0}
.eps li{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line)}
.eps li .epno{min-width:34px;font-weight:700;color:var(--accent);font-size:13px}
.ept{flex:1;min-width:0}
.ept b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ept small{color:var(--muted)}
.epa{display:flex;gap:6px;flex-shrink:0}

.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.72);display:flex;align-items:flex-end;justify-content:center}
.modal.hidden{display:none}
.sheet{width:100%;max-width:680px;background:#141824;border-radius:16px 16px 0 0;padding:12px calc(12px + env(safe-area-inset-horizontal)) calc(16px + env(safe-area-inset-bottom));max-height:86vh;overflow:auto}
.sheethead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:700}
#sheetClose{background:none;border:0;color:var(--muted);font-size:18px}
.yt{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;background:#000;display:block}

#toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);background:#222941;color:#fff;padding:9px 16px;border-radius:999px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:99;max-width:80vw}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px}
.panel h3{margin:0 0 6px;font-size:16px}
.inline{display:flex;gap:8px;margin-top:10px}
.inline input{flex:1;min-width:0;background:#0f1117;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:9px 12px;font-size:15px;outline:none}
.inline input:focus{border-color:var(--accent)}
.dl-pick select{flex:1;min-width:0;background:#0f1117;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:9px 10px;font-size:14px;outline:none}
.dl-opts{margin-top:8px}
.pbar{height:8px;background:var(--line);border-radius:999px;overflow:hidden;margin:8px 0 4px}
.pbar>div{height:100%;width:0;background:var(--accent);transition:width .3s}
