*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;width:100%;min-height:100%;background:#111;color:#eee;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;overflow-x:hidden;touch-action:manipulation}
body{-webkit-user-select:none;user-select:none}
button,input{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}
#app{min-height:100vh;padding-bottom:calc(68px + env(safe-area-inset-bottom))}
.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;position:sticky;top:0;z-index:10;background:#151515;border-bottom:1px solid #292929}
.brand{font-weight:700;font-size:18px}.icon{font-size:27px;width:44px;height:44px}
.drawer{position:fixed;z-index:30;left:0;top:0;bottom:0;width:290px;max-width:84vw;background:#181818;padding:70px 12px 20px;transform:translateX(-105%);transition:transform .18s ease;box-shadow:4px 0 20px #0008}.drawer.open{transform:translateX(0)}
.drawer button{display:block;width:100%;text-align:left;padding:15px 14px;border-radius:10px;margin:3px 0}.drawer button:active{background:#2b2b2b}.drawer-foot{position:absolute;left:12px;right:12px;bottom:max(18px,env(safe-area-inset-bottom))}
.login{background:#252525!important}.shade{display:none;position:fixed;inset:0;z-index:20;background:#0009}.shade.open{display:block}
.page{padding:16px 14px;max-width:1240px;margin:auto}.hero{padding:22px 16px;border-radius:16px;background:#1c1c1c;margin-bottom:16px}.hero h1{margin:0 0 6px;font-size:27px}.muted{color:#aaa}
.searchbox{display:flex;gap:8px;margin:10px 0 18px}.searchbox input{flex:1;min-width:0;padding:13px;border-radius:10px;border:1px solid #383838;background:#202020;color:#fff;outline:none}.primary{padding:13px 16px;border-radius:10px;background:#e11;color:#fff;font-weight:700}
.section-head{display:flex;justify-content:space-between;align-items:center;margin:18px 2px 10px}.section-head h2{font-size:19px;margin:0}.small{font-size:12px;color:#aaa}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}.row-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.row-scroll .card{min-width:240px;width:240px}
.card{background:#1b1b1b;border-radius:12px;overflow:hidden;min-width:0}.thumb{aspect-ratio:16/9;background:#252525;position:relative;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.play-dot{position:absolute;right:8px;bottom:8px;background:#000b;padding:7px 9px;border-radius:999px}.card .body{padding:11px}.title{font-weight:650;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meta{color:#999;font-size:13px;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player{background:#000;border-radius:12px;overflow:hidden;aspect-ratio:16/9}.player iframe{width:100%;height:100%;border:0}
.videohead{padding:15px 2px}.videohead h1{font-size:20px;line-height:1.3;margin:0 0 6px}.actions{display:flex;gap:8px;flex-wrap:wrap}.action{padding:10px 13px;background:#252525;border-radius:9px}
.notice{padding:12px;border-radius:10px;background:#242424;margin:12px 0;color:#ddd}.notice.ok{background:#17221a}.notice.err{background:#291919}
.list{display:flex;flex-direction:column;gap:8px}.list .row{padding:13px;background:#1b1b1b;border-radius:10px}.empty{padding:35px 15px;text-align:center;color:#999}.source{font-size:11px;color:#777;margin-top:8px}
.bottomnav{position:fixed;z-index:15;left:0;right:0;bottom:0;height:68px;padding-bottom:env(safe-area-inset-bottom);background:#151515;border-top:1px solid #292929;display:flex;justify-content:space-around}.bottomnav button{flex:1;max-width:180px;font-size:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.bottomnav span{font-size:11px;color:#aaa}
.back{padding:10px 0;color:#bbb}.chipbar{display:flex;gap:8px;overflow-x:auto;margin-bottom:14px}.chip{padding:9px 12px;background:#252525;border-radius:999px;white-space:nowrap}
@media(min-width:800px){.topbar{height:64px}.page{padding:25px}.bottomnav{height:60px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}