:root{
  --bg:#0b0d17; --bg2:#12152a; --card:#171a30; --card2:#1e2240;
  --fg:#eef0ff; --dim:#9aa0c8; --accent:#6c4cff; --accent2:#00c2ff;
  --radius:14px; --gap:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft Yahei",sans-serif;-webkit-font-smoothing:antialiased}
body{min-height:100vh}
.hidden{display:none !important}
img{display:block;background:var(--card2)}
button{font-family:inherit;cursor:pointer}

/* Gate */
.gate{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(1200px 600px at 50% -10%,#241b4d 0%,var(--bg) 60%)}
.gate-card{background:var(--card);padding:36px 30px;border-radius:20px;width:min(90vw,360px);
  box-shadow:0 20px 60px rgba(0,0,0,.5);text-align:center}
.gate-logo{font-size:32px;font-weight:800;letter-spacing:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.gate-sub{color:var(--dim);margin:6px 0 22px;font-size:13px}
.gate input{width:100%;padding:13px 14px;border-radius:10px;border:1px solid #2c3160;background:var(--bg2);color:var(--fg);font-size:15px;outline:none}
.gate input:focus{border-color:var(--accent)}
.gate button{width:100%;margin-top:14px;padding:13px;border:none;border-radius:10px;font-size:15px;font-weight:600;color:#fff;
  background:linear-gradient(90deg,var(--accent),#8b6bff)}
.gate-err{color:#ff6b8a;font-size:13px;margin-top:10px;min-height:18px}

/* Topbar */
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;padding:12px 20px;
  background:rgba(11,13,23,.85);backdrop-filter:blur(12px);border-bottom:1px solid #1c1f3a;flex-wrap:wrap}
.brand{font-size:20px;font-weight:800;white-space:nowrap}
.brand span{font-size:11px;color:var(--dim);margin-left:6px;font-weight:500;vertical-align:middle}
.cats{display:flex;gap:6px;flex:1;overflow-x:auto;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{padding:8px 14px;border-radius:999px;border:none;background:transparent;color:var(--dim);font-size:14px;white-space:nowrap}
.cat:hover{color:var(--fg)}
.cat.active{background:var(--accent);color:#fff;font-weight:600}
.search{display:flex;align-items:center;background:var(--card);border-radius:999px;padding:4px 4px 4px 14px}
.search input{border:none;background:transparent;color:var(--fg);outline:none;font-size:14px;width:170px}
.search button{border:none;background:var(--accent);color:#fff;width:34px;height:34px;border-radius:50%;font-size:14px}

/* Main / grids */
.main{padding:20px;max-width:1500px;margin:0 auto}
.grid-title{font-size:18px;margin:6px 4px 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--gap)}
.rail{margin-bottom:26px}
.rail-title{font-size:16px;margin:0 4px 12px;color:var(--dim)}
.hgrid{display:flex;gap:var(--gap);overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.hgrid::-webkit-scrollbar{display:none}
.hgrid .card{width:150px;flex:0 0 auto}

.card{background:var(--card);border-radius:var(--radius);overflow:hidden;border:1px solid transparent;
  transition:transform .15s,border-color .15s;position:relative;text-align:left;padding:0;color:inherit;width:100%}
.card:hover{transform:translateY(-4px);border-color:var(--accent)}
.card .thumb{width:100%;aspect-ratio:2/3;object-fit:cover}
.card .badge{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.7);color:#fff;font-size:11px;padding:2px 7px;border-radius:6px}
.card .cap{padding:9px 10px 11px}
.card .cap .t{font-size:13.5px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.card .cap .m{font-size:11px;color:var(--dim);margin-top:4px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.card .pbar{position:absolute;left:0;bottom:0;height:3px;background:var(--accent2)}
.loadmore{text-align:center;color:var(--dim);padding:26px;font-size:14px;min-height:20px}

/* Modal */
.modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-bg{position:absolute;inset:0;background:rgba(4,5,12,.8);backdrop-filter:blur(4px)}
.modal-card{position:relative;background:var(--bg2);border-radius:18px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;
  box-shadow:0 30px 80px rgba(0,0,0,.6)}
.modal-x{position:absolute;top:12px;right:12px;z-index:2;width:36px;height:36px;border-radius:50%;border:none;
  background:rgba(0,0,0,.5);color:#fff;font-size:16px}
.detail-card{padding:26px}
.detail-head{display:flex;gap:22px}
.detail-poster{width:170px;aspect-ratio:2/3;border-radius:12px;object-fit:cover;flex:0 0 auto}
.detail-info h1{font-size:24px;margin-bottom:10px}
.detail-meta{color:var(--accent2);font-size:13px;margin-bottom:8px}
.detail-actors{color:var(--dim);font-size:13px;margin-bottom:12px}
.detail-desc{color:#cfd3f0;font-size:14px;line-height:1.7}
.eps-title{margin:24px 0 12px;font-size:16px}
.episodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.ep{padding:11px 8px;border-radius:10px;border:1px solid #2c3160;background:var(--card);color:var(--fg);font-size:13px;text-align:center;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ep:hover{border-color:var(--accent);background:var(--card2)}
.ep .r{display:block;font-size:10px;color:var(--accent2);margin-top:3px}

/* Player */
.player-card{position:relative;background:#000;border-radius:14px;width:min(96vw,1100px);overflow:hidden}
.player-title{color:#fff;padding:12px 50px 12px 16px;font-size:15px;background:#0b0d17}
#video{width:100%;max-height:74vh;background:#000;display:block}
.player-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#0b0d17}
.pbtn{border:1px solid #2c3160;background:var(--card);color:var(--fg);padding:9px 16px;border-radius:9px;font-size:13px}
.pbtn:hover{border-color:var(--accent)}
.pbtn:disabled{opacity:.35;cursor:default}
.pstatus{color:var(--dim);font-size:13px;flex:1;text-align:center}

/* Toast */
.toast-stack{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:120;display:flex;flex-direction:column;gap:8px;align-items:center}
.toast-item{background:rgba(20,22,44,.95);color:#fff;padding:10px 18px;border-radius:10px;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.4);border:1px solid #2c3160}

/* Loading skeleton */
.sk{background:linear-gradient(90deg,#171a30,#20244a,#171a30);background-size:200% 100%;animation:sh 1.2s infinite}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}

@media(max-width:640px){
  .topbar{gap:10px;padding:10px 12px}
  .brand span{display:none}
  .search input{width:110px}
  .main{padding:14px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px}
  .detail-head{flex-direction:column}
  .detail-poster{width:120px}
  .modal{padding:0}
  .detail-card{border-radius:0;min-height:100vh}
}
