/* 参考 cankao 页面：黑底 + 大图推荐 + 分区卡片。保持轻量，避免内联超大 base64。 */
:root{
  --cankao-accent:#fb3867;
  --cankao-text:#fff;
  --cankao-muted:rgba(255,255,255,.65);
  --cankao-card:#121212;
  --cankao-border:rgba(255,255,255,.12);
}

body.body-black{background:#000;color:var(--cankao-text);}
html, body{overflow-x:hidden;}
body.body-black .site-bg,
body.body-black .site-noise{display:none;}

.pc_container{
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 18px 60px;
}

.cankao-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 18px 0;
}
.cankao-brand strong{font-size:1.1rem;}
.cankao-brand span{margin-left:10px;color:var(--cankao-muted);font-size:.9rem;}

.cankao-hero{
  border-radius: 16px;
  overflow:hidden;
  border:1px solid var(--cankao-border);
  background:#0b0b0b;
}
.cankao-hero-track{
  display:flex;
  overflow:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling: touch;
}
.cankao-hero-track a{flex:0 0 100%;scroll-snap-align:start;display:block;}
.cankao-hero-track img{width:100%;height:260px;object-fit:cover;display:block;flex:0 0 100%;scroll-snap-align:start;}

.cankao-section{
  margin-top: 26px;
}
.cankao-section-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom: 14px;
}
.cankao-section-title h2{margin:0;font-size:1.15rem;font-weight:700;}
.cankao-section-title .right{display:flex;gap:10px;align-items:center;}

.cankao-search{
  display:flex;
  gap:10px;
  align-items:center;
}
.cankao-search input{
  width: 300px;
  max-width: 50vw;
  padding: 10px 12px;
  border-radius: 10px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color:#fff;
}
.cankao-search button{
  padding:10px 14px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
}
.cankao-search button:hover{border-color:rgba(251,56,103,.6);color:var(--cankao-accent);}

.cankao-cats{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 10px;
}
.cankao-pill{
  display:inline-flex;
  align-items:center;
  padding: 8px 12px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.16);
  color: var(--cankao-muted);
  text-decoration:none;
  font-size:.9rem;
}
.cankao-pill.active{
  border-color: rgba(251,56,103,.7);
  color:#fff;
  background: rgba(251,56,103,.16);
}
.cankao-pill:hover{color:#fff;border-color:rgba(255,255,255,.28);}

.cankao-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
}
.cankao-item{
  text-decoration:none;
  color:inherit;
  background: var(--cankao-card);
  border:1px solid var(--cankao-border);
  border-radius: 14px;
  overflow:hidden;
  transition: transform .15s ease, border-color .15s ease;
}
.cankao-item:hover{
  transform: translateY(-2px);
  border-color: rgba(251,56,103,.55);
}
.cankao-cover{
  width:100%;
  aspect-ratio: 220/305;
  object-fit:cover;
  display:block;
  background:#000;
}
.cankao-meta{padding: 12px 12px 14px;}
.cankao-name{margin:0 0 8px;font-weight:600;line-height:1.35;}
.cankao-tags{display:flex;gap:8px;flex-wrap:wrap;color:var(--cankao-muted);font-size:.85rem;}
.cankao-tag{
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding: 4px 10px;
}

/* 播放页 */
.cankao-watch{
  display:grid;
  grid-template-columns: 1.55fr .95fr;
  gap: 18px;
  margin-top: 18px;
}
.cankao-player-card{
  border:1px solid var(--cankao-border);
  border-radius: 16px;
  background: #0b0b0b;
  overflow:hidden;
  padding: 14px;
}
.cankao-player-title{margin: 2px 0 10px;font-size:1.1rem;font-weight:700;}
.cankao-breadcrumb{margin-top: 8px;color:var(--cankao-muted);font-size:.9rem;}
.cankao-breadcrumb a{color:var(--cankao-muted);text-decoration:none;}
.cankao-breadcrumb a:hover{color:var(--cankao-accent);}
.cankao-side{
  border:1px solid var(--cankao-border);
  border-radius: 16px;
  background: rgba(255,255,255,.04);
  overflow:hidden;
}
.cankao-side h3{margin:0;padding:14px 14px 12px;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.08);}
.cankao-ep-list{list-style:none;margin:0;padding:0;max-height: 540px;overflow:auto;}
.cankao-ep-list a{
  display:flex;
  gap:10px;
  padding: 12px 14px;
  text-decoration:none;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.cankao-ep-list a:hover{background: rgba(251,56,103,.08);}
.cankao-ep-idx{color:var(--cankao-accent);font-weight:700;min-width:4.5rem;}
.cankao-ep-title{flex:1;color:rgba(255,255,255,.86);}

@media (max-width: 980px){
  .cankao-watch{grid-template-columns: 1fr;}
  .cankao-search input{width: 100%;}
  .cankao-hero-track{grid-template-columns: 1fr;}
  .cankao-hero-track img{height: 220px;}
}

.flex-home-wrap{
  max-width: 1440px;
  padding-top: 0;
}
.flex-home-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:72px;
  padding: 10px clamp(18px, calc((100vw - 1440px) / 2 + 18px), 9999px);
  border-radius: 0;
  border: 1px solid rgba(255,255,255,.16);
  background: transparent;
  box-shadow: 0 18px 60px rgba(0,0,0,.42);
  position: sticky;
  top: 0;
  z-index: 50;
  isolation: isolate;
  /* 勿用 overflow:hidden，会裁切语言下拉面板的下拉区域，被下方幻灯片盖住 */
  overflow: visible;
  /* 让导航栏突破居中容器，左右贴边 */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* 用 ::before 做玻璃层，毛玻璃更稳定也更明显 */
.flex-home-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.06) 100%),
    rgba(10, 12, 16, .22);
  -webkit-backdrop-filter: blur(22px) saturate(155%);
  backdrop-filter: blur(22px) saturate(155%);
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .flex-home-header{
    /* 背景交给 ::before，避免和 backdrop-filter 互相覆盖 */
  }
  .flex-home-header::before{
    background:
      linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.07) 100%),
      rgba(10, 12, 16, .12);
  }
}
.flex-home-header-left,
.flex-home-header-right{
  display:flex;
  align-items:center;
  gap:18px;
  flex-shrink:0;
}
.flex-home-logo{
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  text-decoration:none;
  font-size:1.45rem;
  font-weight:700;
}
.flex-home-logo .runtime-version{
  font-size: .85rem;
  font-weight: 700;
  line-height: 1;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color: rgba(255,255,255,.85);
}
.flex-home-logo img{
  width:34px;
  height:34px;
  object-fit:contain;
}
.flex-home-main-nav{
  display:flex;
  align-items:center;
  gap:20px;
}
.flex-home-main-nav-link,
.flex-home-icon-link{
  color:#fff;
  text-decoration:none;
  font-size:.96rem;
  opacity:.92;
}
.flex-home-icon-link:hover,
.flex-home-main-nav-link:hover{opacity:1;color:#fff;}
.flex-home-search{
  position:relative;
  display:flex;
  align-items:center;
  flex-shrink:0;
  width:280px;
  max-width:100%;
}
.flex-home-search input{
  width:100%;
  box-sizing:border-box;
  background:#141414;
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
  border-radius:999px;
  padding:10px 40px 10px 14px;
  height:28px;
  line-height:1.2;
  font-size:14px;
}
.flex-home-search button{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  width:28px;
  height:28px;
  margin:0;
  padding:0;
  border:none;
  border-radius:50%;
  background:transparent;
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  opacity:.85;
}
.flex-home-search button:hover{opacity:1;}
.flex-home-search button::before{
  content:"";
  display:block;
  width:12px;
  height:12px;
  border:2px solid currentColor;
  border-radius:50%;
  transform:translate(0, -1px);
}
.flex-home-search button::after{
  content:"";
  position:absolute;
  right:7px;
  bottom:7px;
  width:7px;
  height:2px;
  background:currentColor;
  transform:rotate(45deg);
  transform-origin:right center;
}
.flex-home-header .flex-home-search input{
  padding-right:40px !important;
  font-size:14px !important;
  height:28px !important;
  line-height:1.2 !important;
}
.flex-home-lang{
  position:relative;
  z-index: 60;
  display:flex;
  align-items:center;
  gap:6px;
  color:#fff;
  cursor:pointer;
}
.flex-home-lang span{opacity:.65;font-size:.9rem;}
.flex-home-lang strong{font-size:.95rem;}
.flex-home-lang-menu{
  display:none;
  position:absolute;
  top:100%;
  right:0;
  min-width:240px;
  padding:15px;
  border-radius:12px;
  background:#111;
  border:1px solid rgba(255,255,255,.12);
  box-shadow: 0 12px 40px rgba(0,0,0,.45);
  z-index: 100;
  white-space:nowrap;
  overflow:visible;
}
.flex-home-lang:hover .flex-home-lang-menu{display:block;}
.flex-home-lang-menu a{
  display:block;
  color:#fff;
  text-decoration:none;
  padding:14px 12px;
  border-radius:8px;
  margin-bottom:8px;
  white-space:nowrap;
  font-size:1rem;
  line-height:1.5;
}
.flex-home-lang-menu a:hover{background:rgba(255,255,255,.07);}
.flex-home-lang-menu a:last-child{margin-bottom:0;}
.flex-home-lang-form{margin:0;padding:0;display:block;}
.flex-home-lang-submit{
  display:block;width:100%;box-sizing:border-box;
  color:#fff;text-decoration:none;padding:14px 12px;border-radius:8px;
  background:transparent;border:none;cursor:pointer;font:inherit;text-align:left;
  margin-bottom:8px;
  white-space:nowrap;
  font-size:1rem;
  line-height:1.5;
}
.flex-home-lang-submit:hover{background:rgba(255,255,255,.07);}
.flex-home-lang-submit:last-of-type{margin-bottom:0;}
.flex-home-lang-nocode{
  display:block;color:rgba(255,255,255,.45);padding:14px 12px;font-size:1rem;
  margin-bottom:8px;
  white-space:nowrap;
  line-height:1.5;
}
.flex-home-lang-nocode:last-child{margin-bottom:0;}
.flex-home-hot-search{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  color:rgba(255,255,255,.7);
  padding: 6px 0 16px;
}
.flex-home-hot-search a{
  color:rgba(255,255,255,.88);
  text-decoration:none;
  font-size:.92rem;
}
.flex-home-hot-title{color:rgba(255,255,255,.55);}
.flex-home-hero{
  margin-top: -72px;
  padding-top: 72px;
  display:grid;
  grid-template-columns: 1fr;
  gap:22px;
  align-items:stretch;
}
.flex-home-hero-media{
  position:relative;
  height: clamp(240px, 52vw, 820px);
  border-radius:0;
  overflow:hidden;
  background:#111;
  /* 仅横幅区域左右贴齐视口，内容区仍在 pc_container 内 */
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
.flex-home-hero-slider{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
}
.flex-home-hero-track{
  display:flex;
  height:100%;
  will-change:transform;
  transition:transform .6s cubic-bezier(.25,.1,.25,1);
}
.flex-home-hero-slide{
  flex:0 0 100%;
  width:100%;
  height:100%;
  color:#fff;
  text-decoration:none;
}
.flex-home-hero-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.flex-home-hero-info{
  transition:opacity .35s ease;
}
.flex-home-hero-info.is-fading{
  opacity:.35;
}
@media (prefers-reduced-motion: reduce){
  .flex-home-hero-track,
  .flex-home-hero-info{
    transition:none;
  }
}
.flex-home-hero-overlay{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:26px 28px;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.82) 100%);
}
.flex-home-hero-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(0,0,0,.35);
  cursor:pointer;
  z-index: 6;
}
.flex-home-hero-arrow:hover{border-color:rgba(251,56,103,.6);}
.flex-home-hero-arrow.is-prev{left:14px;}
.flex-home-hero-arrow.is-next{right:14px;}
.flex-home-hero-arrow::before{
  content:"";
  display:block;
  width:10px;
  height:10px;
  border-left:2px solid rgba(255,255,255,.88);
  border-bottom:2px solid rgba(255,255,255,.88);
  margin: 0 auto;
  transform: rotate(45deg);
}
.flex-home-hero-arrow.is-next::before{ transform: rotate(-135deg); }
.flex-home-hero-dots{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom: 14px;
  display:flex;
  gap:8px;
  z-index: 6;
}
.flex-home-hero-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.55);
  background: rgba(255,255,255,.22);
  cursor:pointer;
  padding:0;
}
.flex-home-hero-dot.is-active{
  background:#fb3867;
  border-color:#fb3867;
}
.flex-home-hero-main{
  font-size:1.8rem;
  font-weight:800;
  line-height:1.15;
  max-width: 980px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.flex-home-hero-play{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top: 14px;
  min-width: 136px;
  height: 44px;
  border-radius: 999px;
  text-decoration: none;
  color: #111;
  background: #fff;
  font-weight: 800;
}
.flex-home-hero-badge{
  font-size:1.05rem;
  font-weight:700;
  margin-bottom:18px;
}
.flex-home-hero-ticker{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.flex-home-hero-ticker span{
  font-size:1.5rem;
  font-weight:700;
  line-height:1.2;
}
.flex-home-hero-side{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  padding: 0 18px;
  padding-bottom:34px;
}
.flex-home-brand-box{
  font-size:2.2rem;
  font-weight:700;
  margin-bottom:18px;
}
.flex-home-hero-side h1{
  font-size:2rem;
  line-height:1.2;
  margin:0 0 18px;
}
.flex-home-play-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:136px;
  height:48px;
  border-radius:999px;
  text-decoration:none;
  color:#111;
  background:#fff;
  font-weight:700;
}
.flex-home-categories{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:28px 0 8px;
}
.flex-home-categories a{
  color:rgba(255,255,255,.85);
  text-decoration:none;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
}
.flex-home-categories a.is-active{
  background:#fff;
  color:#111;
}
.flex-home-section{
  margin-top:28px;
}
.flex-home-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
}
.flex-home-section-head h2{
  margin:0;
  font-size:1.45rem;
}
.flex-home-section-head a{
  color:rgba(255,255,255,.72);
  text-decoration:none;
}
.flex-home-section-count{
  font-size:0.9rem;
  color:rgba(255,255,255,.55);
  white-space:nowrap;
}
.flex-home-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:18px 14px;
}
.flex-home-grid--dense{
  grid-template-columns:repeat(6, minmax(0, 1fr));
}
.flex-home-card{
  display:block;
  color:#fff;
  text-decoration:none;
}
.flex-home-card-media{
  position:relative;
  border-radius:18px;
  overflow:hidden;
}
.flex-home-card img{
  width:100%;
  aspect-ratio: 0.72;
  object-fit:cover;
  display:block;
  background:#111;
}
.flex-home-card-hover{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .22s ease;
  background:linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.86) 60%, rgba(0,0,0,.95) 100%);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:12px;
}
.flex-home-card:hover .flex-home-card-hover{opacity:1;}
.flex-home-card-hover-top{
  display:flex;
  justify-content:flex-start;
}
.flex-home-tag-pill{
  display:inline-flex;
  align-items:center;
  height:24px;
  padding:0 10px;
  border-radius:999px;
  font-size:.78rem;
  background:rgba(251,56,103,.9);
  color:#fff;
}
.flex-home-tag-pill { display: none; }
.flex-home-card-hover-bottom{display:flex;flex-direction:column;gap:10px;}
.flex-home-card-desc{
  margin:0;
  font-size:.83rem;
  line-height:1.45;
  color:rgba(255,255,255,.9);
  max-height:4.3em;
  overflow:hidden;
}
.flex-home-card-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.flex-home-card-actions .btn-play{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
  border-radius:999px;
  background:#fff;
  color:#111;
  font-size:.78rem;
  font-weight:700;
}
.flex-home-card-actions .btn-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:.74rem;
  cursor:pointer;
  font-family:inherit;
}
.flex-home-card-actions .btn-icon.is-active{
  border-color:rgba(251,56,103,.65);
  background:rgba(251,56,103,.35);
}
.card-share-menu{
  position:fixed;
  z-index:9999;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px 16px;
  min-width:180px;
  border-radius:12px;
  background:rgba(18,18,22,.96);
  border:1px solid rgba(255,255,255,.15);
  box-shadow:0 12px 40px rgba(0,0,0,.45);
}
.card-share-menu a{
  color:#fff;
  text-decoration:none;
  padding:8px 10px;
  border-radius:8px;
  background:rgba(255,255,255,.06);
}
.card-share-menu a:hover{background:rgba(255,255,255,.12);}
.card-share-menu button[data-share-close]{
  position:absolute;
  top:6px;
  right:8px;
  border:none;
  background:transparent;
  color:#aaa;
  font-size:1.1rem;
  cursor:pointer;
}
.account-favorites-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin:20px 0 12px;
}
.account-favorites-toolbar input,
.account-favorites-toolbar select{
  padding:8px 10px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(0,0,0,.25);
  color:inherit;
}
.flex-home-card-title{
  margin-top:10px;
  line-height:1.4;
  font-size:.98rem;
}
.flex-home-download{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:40px;
  padding:28px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.08);
}
.flex-home-download h3{
  margin:0 0 8px;
  font-size:1.8rem;
}
.flex-home-download p{
  margin:0 0 16px;
  color:rgba(255,255,255,.7);
}
.flex-home-download-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border-radius:999px;
  background:#fff;
  color:#111;
  text-decoration:none;
  font-weight:700;
}
.flex-home-download-qr img,
.flex-home-download-placeholder{
  width:168px;
  height:168px;
  border-radius:20px;
  object-fit:cover;
  background:#fff;
  color:#111;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.95rem;
  text-align:center;
  padding:14px;
}
.flex-home-footer{
  margin-top:42px;
  padding:28px 0 40px;
  border-top:1px solid rgba(255,255,255,.08);
}
.flex-home-footer-links,
.flex-home-footer-social{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.flex-home-footer a{
  color:rgba(255,255,255,.82);
  text-decoration:none;
}
.flex-home-footer-links a.is-footer-current{
  color:#fb3867;
  font-weight:600;
}
.flex-home-footer-copy,
.flex-home-footer-policy{
  color:rgba(255,255,255,.55);
  font-size:.92rem;
  margin-top:8px;
}
.flex-home-footer-policy-text{ margin-right:6px; }
.flex-home-footer-policy a{ color:rgba(255,255,255,.78); text-decoration:underline; text-underline-offset:3px; }
.flex-home-footer-policy .footer-policy-sep{
  display:inline-block;
  margin:0 6px;
  color:rgba(255,255,255,.35);
  text-decoration:none;
}
@media (max-width: 1200px){
  .flex-home-grid{grid-template-columns:repeat(4, minmax(0, 1fr));}
  .flex-home-grid--dense{grid-template-columns:repeat(5, minmax(0, 1fr));}
}
@media (max-width: 980px){
  .flex-home-header{flex-direction:column;align-items:flex-start;}
  .flex-home-header-right{flex-wrap:wrap;}
  .flex-home-hero{grid-template-columns:1fr;}
  .flex-home-hero-media{height: clamp(200px, 52vw, 300px);}
  .flex-home-grid,
  .flex-home-grid--dense{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .flex-home-download{flex-direction:column;align-items:flex-start;}
}

.flex-watch-wrap{
  max-width:1636px;
}
.flex-watch-header{
  margin-bottom:10px;
}
.flex-watch-breadcrumb{
  margin: 10px 0 14px;
  font-size:.95rem;
}
.flex-watch-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 420px;
  gap:28px;
  align-items:start;
}
.flex-watch-player-shell{
  background:#0a0a0a;
  border-radius:18px;
  overflow:hidden;
  min-height:580px;
  border:1px solid rgba(255,255,255,.08);
  position:relative;
  display:flex;
  flex-direction:column;
}
.flex-watch-player-shell #player{
  min-height:580px;
}
.flex-watch-player-frame{
  position:relative;
}
.flex-watch-player-frame #player{
  width:100%;
}
.flex-watch-ep-nav--ctrl{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-left:10px;
  flex-shrink:0;
  vertical-align:middle;
}
.dplayer-icons-left .flex-watch-ep-nav--ctrl{
  height:100%;
}
.flex-watch-ep-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:26px;
  padding:0 10px;
  border-radius:6px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:12px;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  transition:background .15s,border-color .15s;
}
.flex-watch-ep-btn:hover{
  border-color:#fb3867;
  background:rgba(251,56,103,.28);
  color:#fff;
}
.dplayer-full .flex-watch-ep-nav--ctrl{
  margin-left:12px;
}
/* 右侧自定义图标按钮：与 DPlayer 原生图标同尺寸 */
.dplayer .dplayer-icons-right > .dplayer-icon.flex-watch-speed,
.dplayer .dplayer-icons-right > .dplayer-icon.flex-watch-picker,
.dplayer .dplayer-icons-right > .dplayer-icon.flex-watch-pip{
  position:relative;
  display:inline-block;
  height:100%;
  margin:0;
  padding:0;
  vertical-align:middle;
}
.dplayer .dplayer-icons-right > .dplayer-icon.flex-watch-speed{
  margin-right:10px;
}
.dplayer .dplayer-icons-right .flex-watch-ctrl-btn{
  display:inline-block;
  width:40px;
  height:100%;
  margin:0;
  padding:0;
  border:none;
  background:transparent;
  color:#fff;
  opacity:.8;
  vertical-align:middle;
  cursor:pointer;
  box-sizing:border-box;
  transition:opacity .15s;
}
.dplayer .dplayer-icons-right .flex-watch-ctrl-btn:hover{
  opacity:1;
}
.dplayer .dplayer-icons-right .flex-watch-ctrl-btn .dplayer-icon-content{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  line-height:0;
  pointer-events:none;
}
.dplayer .dplayer-icons-right .flex-watch-ctrl-btn .dplayer-icon-content svg{
  width:22px;
  height:22px;
  display:block;
  flex-shrink:0;
}
.dplayer .dplayer-icons-right .flex-watch-speed .dplayer-icon-content svg{
  width:22px;
  height:22px;
}
.flex-watch-speed{
  overflow:visible;
}
.flex-watch-speed-menu{
  position:absolute;
  right:0;
  bottom:calc(100% + 10px);
  min-width:96px;
  max-width:120px;
  padding:4px;
  border-radius:8px;
  background:rgba(20,20,20,.98);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 8px 24px rgba(0,0,0,.45);
  box-sizing:border-box;
  overflow:hidden;
  z-index:100000010;
}
.flex-watch-speed-item{
  display:block;
  width:100%;
  box-sizing:border-box;
  border:none;
  border-radius:6px;
  background:transparent;
  color:rgba(255,255,255,.9);
  text-align:center;
  padding:7px 10px;
  margin:0;
  font-size:13px;
  line-height:1.2;
  cursor:pointer;
}
.flex-watch-speed-item:hover,
.flex-watch-speed-item.is-active{
  background:rgba(251,56,103,.28);
  color:#fff;
}
.dplayer-controller .flex-watch-speed-menu{
  pointer-events:auto;
}
.dplayer-setting-box .dplayer-setting-speed{
  display:none !important;
}
.flex-watch-pip-label,
.flex-watch-picker-icon-label{
  pointer-events:none;
}
.flex-watch-playlist-backdrop{
  position:absolute;
  inset:0;
  z-index:100000002;
  background:rgba(0,0,0,.45);
}
.flex-watch-playlist-panel{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  width:min(320px, 88vw);
  z-index:100000003;
  display:flex;
  flex-direction:column;
  background:rgba(12,12,12,.96);
  border-left:1px solid rgba(255,255,255,.1);
  box-shadow:-8px 0 32px rgba(0,0,0,.4);
  transform:translateX(100%);
  transition:transform .22s ease;
}
.flex-watch-playlist-open .flex-watch-playlist-panel{
  transform:translateX(0);
}
.flex-watch-playlist-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.08);
  flex-shrink:0;
}
.flex-watch-playlist-head span{
  font-size:1rem;
  font-weight:600;
  color:#fff;
}
.flex-watch-playlist-close{
  width:32px;
  height:32px;
  border:none;
  border-radius:8px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
}
.flex-watch-playlist-list{
  flex:1;
  overflow-y:auto;
  padding:8px 10px 16px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.flex-watch-playlist-list::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
.flex-watch-playlist-item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 12px;
  border-radius:10px;
  color:rgba(255,255,255,.88);
  text-decoration:none;
  margin-bottom:4px;
}
.flex-watch-playlist-item:hover{
  background:rgba(255,255,255,.06);
}
.flex-watch-playlist-item.is-active{
  background:rgba(251,56,103,.18);
  color:#fb3867;
}
.flex-watch-playlist-item-idx{
  flex-shrink:0;
  min-width:3.2em;
  font-size:.85rem;
  opacity:.85;
}
.flex-watch-playlist-item-title{
  font-size:.92rem;
  line-height:1.4;
  word-break:break-word;
}
.flex-watch-lock{
  flex:1;
  width:100%;
  min-height:580px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  position:relative;
  padding:0;
  box-sizing:border-box;
}
.watch-lock-layer{
  position:absolute;
  inset:0;
  width:100%;
  max-width:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:28px 24px;
  box-sizing:border-box;
  overflow:auto;
}
.watch-lock-layer[hidden],
.watch-lock-recharge[hidden]{
  display:none !important;
}
.watch-lock-icon{
  width:48px;
  height:48px;
  margin:0 0 16px;
  border-radius:50%;
  background:rgba(255,255,255,.08) url("/images/20260922-163619.png") center/28px no-repeat;
}
.watch-lock-recharge{
  position:absolute;
  inset:0;
  width:100%;
  max-width:none;
  max-height:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  overflow:auto;
  padding:28px 24px;
  box-sizing:border-box;
  text-align:center;
  scrollbar-width:thin;
}
.watch-lock-recharge-inner{
  width:100%;
  max-width:640px;
  text-align:left;
}
.watch-lock-recharge::-webkit-scrollbar{
  width:6px;
}
.watch-lock-recharge::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.2);
  border-radius:99px;
}
.watch-lock-close{
  position:absolute;
  top:16px;
  right:16px;
  width:36px;
  height:36px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  z-index:2;
}
.watch-lock-msg{
  margin:0 0 10px;
  font-size:1.05rem;
  line-height:1.5;
}
.watch-lock-balance{
  margin:0 0 16px;
  opacity:.75;
  font-size:.92rem;
}
.watch-lock-layer form{
  margin:0 0 10px;
}
.watch-lock-btn{
  border:none;
  cursor:pointer;
  margin-top:4px;
  display:inline-flex;
}
.watch-lock-btn-sub,
.watch-lock-link{
  display:inline-flex;
  align-items:center;
  border:none;
  background:transparent;
  color:rgba(255,255,255,.72);
  padding:8px 4px;
  font-size:.88rem;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.watch-recharge-bill{
  display:flex;
  flex-wrap:wrap;
  gap:16px 28px;
  margin:8px 0 18px;
  font-size:.95rem;
  opacity:.9;
}
.watch-recharge-title{
  margin:16px 0 10px;
  font-size:.92rem;
  opacity:.7;
}
.watch-recharge-plans,
.watch-recharge-packs{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:10px;
}
.watch-recharge-plan,
.watch-recharge-pack{
  margin:0;
  padding:12px;
  border-radius:12px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}
.watch-recharge-plan-name,
.watch-recharge-pack-coins{
  font-size:.88rem;
  line-height:1.4;
  margin-bottom:8px;
}
.watch-recharge-pack-coins span,
.watch-recharge-pack-usd{
  opacity:.65;
  font-size:.8rem;
}
.watch-recharge-pay{
  width:100%;
  border:none;
  border-radius:999px;
  padding:8px 12px;
  cursor:pointer;
  background:#fff;
  color:#111;
  font-weight:600;
}
.flex-watch-info-card{
  margin-top:18px;
}
.flex-watch-info-card h1{
  margin:0 0 14px;
  font-size:1.9rem;
  font-weight:700;
  line-height:1.25;
}
.flex-watch-info-card h1 span{opacity:.7;}
.flex-watch-info-card h3{
  margin:0 0 12px;
  font-size:1.08rem;
  font-weight:600;
}
.flex-watch-desc{
  color:rgba(255,255,255,.72);
  line-height:1.7;
  font-size:.98rem;
  max-width:980px;
}
.flex-watch-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.flex-watch-tags a{
  display:inline-flex;
  align-items:center;
  height:34px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.88);
  text-decoration:none;
  background:rgba(255,255,255,.04);
}
.flex-watch-tags a:hover{
  border-color:#fb3867;
  color:#fb3867;
}
.flex-watch-side{
  position:sticky;
  top:18px;
}
.flex-watch-episode-panel{
  background:#101010;
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:18px 18px 16px;
}
.flex-watch-side-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.flex-watch-side-head h3{
  margin:0;
  font-size:1.15rem;
}
.flex-watch-ep-all{
  color:rgba(255,255,255,.72);
  text-decoration:none;
  flex-shrink:0;
  font-size:.9rem;
  white-space:nowrap;
}
.flex-watch-ep-all:hover{
  color:#fff;
}
.flex-watch-ep-ranges{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 16px;
  min-width:0;
  margin-bottom:14px;
}
.flex-watch-ep-range{
  appearance:none;
  background:none;
  border:none;
  padding:0;
  margin:0;
  color:rgba(255,255,255,.42);
  font-size:.92rem;
  line-height:1.2;
  cursor:pointer;
  white-space:nowrap;
}
.flex-watch-ep-range:hover{
  color:rgba(255,255,255,.78);
}
.flex-watch-ep-range.is-active{
  color:#fff;
  font-weight:700;
}
.flex-watch-episode-strip{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:8px;
  overflow:visible;
  padding-bottom:0;
  margin-bottom:0;
}
.flex-watch-episode-strip > [hidden]{
  display:none !important;
}
.flex-watch-ep-pill{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  aspect-ratio:1;
  min-width:0;
  height:auto;
  padding:0;
  border-radius:12px;
  background:#242424;
  color:rgba(255,255,255,.92);
  text-decoration:none;
  white-space:nowrap;
  font-size:.9rem;
  font-weight:600;
  overflow:visible;
}
.flex-watch-ep-pill:hover{
  background:#2f2f2f;
  color:#fff;
}
.flex-watch-ep-pill.is-active{
  color:#fff;
  background:linear-gradient(145deg, #4a2228 0%, #2a1418 100%);
  box-shadow:inset 0 0 0 1px rgba(251,56,103,.35);
}
.flex-watch-ep-num{
  position:relative;
  z-index:0;
  line-height:1;
}
.flex-watch-ep-lock{
  position:absolute;
  top:5px;
  right:5px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:11px;
  height:11px;
  color:rgba(255,255,255,.78);
  pointer-events:none;
  z-index:2;
}
.flex-watch-ep-lock svg{
  display:block;
  width:11px;
  height:11px;
}
.flex-watch-ep-playing{
  position:absolute;
  right:5px;
  bottom:5px;
  display:flex;
  align-items:flex-end;
  gap:2px;
  height:10px;
  pointer-events:none;
  z-index:2;
}
.flex-watch-ep-playing i{
  display:block;
  width:2px;
  border-radius:1px;
  background:#fb3867;
}
.flex-watch-ep-playing i:nth-child(1){ height:4px; }
.flex-watch-ep-playing i:nth-child(2){ height:8px; }
.flex-watch-ep-playing i:nth-child(3){ height:5px; }
.flex-watch-episode-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:560px;
  overflow:auto;
  padding-right:0;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.flex-watch-episode-list::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
.flex-watch-ep-row{
  display:block;
  text-decoration:none;
  color:#fff;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(255,255,255,.03);
}
.flex-watch-ep-row:hover{
  background:rgba(87,87,87,.12);
}
.flex-watch-ep-row.is-active{
  background:rgba(251,56,103,.12);
  border:1px solid rgba(251,56,103,.45);
}
.flex-watch-ep-index{
  display:block;
  font-size:.96rem;
  font-weight:600;
}
.flex-watch-ep-title{
  display:block;
  color:rgba(255,255,255,.76);
  line-height:1.45;
}
.flex-watch-related{
  margin-top:34px;
}
@media (max-width: 1200px){
  .flex-watch-layout{
    grid-template-columns:1fr;
  }
  .flex-watch-side{
    position:static;
  }
}

@media (max-width: 980px){
  .flex-watch-player-shell{
    min-height: auto;
  }
  .flex-watch-player-shell #player{
    min-height: auto;
    aspect-ratio: 16 / 9;
    width: 100%;
  }
  .flex-watch-lock{
    min-height: auto;
  }
  .watch-lock-layer,
  .watch-lock-recharge{
    padding:18px 16px;
  }
  .flex-watch-ep-nav--ctrl{
    margin-left:6px;
    gap:4px;
  }
  .flex-watch-ep-btn{
    height:24px;
    padding:0 8px;
    font-size:11px;
  }
  .flex-watch-playlist-panel{
    width:min(280px, 92vw);
  }
}

.flex-home-main-nav-link.is-active{
  opacity:1;
  color:#fb3867;
}

.genres-breadcrumb{
  font-size:.9rem;
  color:rgba(255,255,255,.55);
  margin:8px 0 18px;
}
.genres-breadcrumb a{
  color:rgba(255,255,255,.75);
  text-decoration:none;
}
.genres-breadcrumb a:hover{color:#fb3867;}
.genres-bc-sep{margin:0 8px;opacity:.5;}
.genres-bc-current{color:rgba(255,255,255,.9);}

.genres-page{margin-bottom:40px;}
.genres-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 20px;margin-bottom:16px;}
.genres-title{margin:0;font-size:1.65rem;font-weight:700;}
.genres-meta{margin:0;font-size:.9rem;color:rgba(255,255,255,.55);}

.genres-toolbar{margin-bottom:14px;}
.genres-sort-label{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:.9rem;
  color:rgba(255,255,255,.7);
}
.genres-sort-select{
  background:#1a1a1a;
  color:#fff;
  border:1px solid var(--cankao-border);
  border-radius:10px;
  padding:8px 12px;
  font:inherit;
  min-width:160px;
  cursor:pointer;
}
.genres-sort-select:focus{outline:2px solid rgba(251,56,103,.4);}

.genres-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  margin-bottom:22px;
}
.genres-tags-more{margin-top:-12px;}
.genres-tag{
  display:inline-block;
  padding:8px 14px;
  border-radius:999px;
  font-size:.85rem;
  text-decoration:none;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.06);
  border:1px solid transparent;
  transition:background .15s,color .15s,border-color .15s;
}
.genres-tag:hover{
  background:rgba(255,255,255,.1);
  color:#fff;
}
.genres-tag.is-active{
  background:rgba(251,56,103,.18);
  border-color:rgba(251,56,103,.45);
  color:#fb3867;
}
.genres-cat-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border-radius:999px;
  font-size:.85rem;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.06);
  border:1px solid transparent;
  cursor:pointer;
}
.genres-cat-toggle:hover{background:rgba(255,255,255,.1);color:#fff;}
.genres-cat-toggle.is-open{background:rgba(251,56,103,.18);border-color:rgba(251,56,103,.45);color:#fb3867;}

.genres-filters{
  margin:0 0 18px;
  padding:14px 14px;
  border:1px solid var(--cankao-border);
  border-radius:14px;
  background:rgba(255,255,255,.04);
}
.genres-filter-block + .genres-filter-block{margin-top:14px;}
.genres-filter-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.genres-filter-title{
  font-size:.9rem;
  color:rgba(255,255,255,.72);
  font-weight:600;
}
.genres-filter-search{
  width:min(320px, 55vw);
  background:#1a1a1a;
  color:#fff;
  border:1px solid var(--cankao-border);
  border-radius:10px;
  padding:8px 10px;
  font:inherit;
}
.genres-filter-search:focus{outline:2px solid rgba(251,56,103,.4);}
.genres-filter-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
}
.genres-pill{
  display:inline-block;
  padding:8px 14px;
  border-radius:999px;
  font-size:.85rem;
  text-decoration:none;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.06);
  border:1px solid transparent;
  transition:background .15s,color .15s,border-color .15s;
  max-width:180px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.genres-pill:hover{
  background:rgba(255,255,255,.1);
  color:#fff;
}
.genres-pill.is-active{
  background:rgba(251,56,103,.18);
  border-color:rgba(251,56,103,.45);
  color:#fb3867;
}
.genres-filter-sort{margin-top:2px;}

.genres-grid{margin-top:4px;}
.genres-empty{
  color:rgba(255,255,255,.5);
  padding:28px 0;
  text-align:center;
}

.genres-pagination{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-top:32px;
}
.genres-page-btn{
  display:inline-block;
  padding:10px 18px;
  border-radius:10px;
  background:rgba(255,255,255,.08);
  color:#fff;
  text-decoration:none;
  font-size:.9rem;
  border:1px solid var(--cankao-border);
}
.genres-page-btn:hover{background:rgba(251,56,103,.2);border-color:rgba(251,56,103,.4);}
.genres-page-btn.is-disabled{
  opacity:.35;
  pointer-events:none;
}

/* Live rooms grid */
.live-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
@media (max-width:1200px){.live-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:900px){.live-grid{grid-template-columns:repeat(2,1fr);}}
.live-card{display:block;color:inherit;text-decoration:none;}
.live-card-media{
  position:relative;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--cankao-border);
  background:#0b0b0b;
  aspect-ratio:16/9;
}
.live-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.live-card-body{padding:10px 2px 0;}
.live-card-title{
  font-weight:600;
  line-height:1.25;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  min-height:2.5em;
}
.live-card-sub{
  margin-top:6px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  opacity:.85;
  font-size:13px;
}
.live-pill{
  position:absolute;
  top:10px;
  left:10px;
  padding:4px 8px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.18);
}
.live-pill-live{background:rgba(251,56,103,.78);border-color:rgba(251,56,103,.85);}
.live-pill-vip{left:auto;right:10px;background:rgba(201,162,39,.22);border-color:rgba(201,162,39,.35);}
.live-pill-hot{top:44px;background:rgba(255,102,0,.22);border-color:rgba(255,102,0,.35);}
.live-pill-badge{top:78px;}
.live-badge-img{
  position:absolute;
  top:10px;
  right:10px;
  width:46px;
  height:46px;
  object-fit:contain;
  border-radius:10px;
  background:rgba(0,0,0,.25);
  border:1px solid var(--cankao-border);
}
.genres-page-info{font-size:.9rem;color:rgba(255,255,255,.55);}

