*{box-sizing:border-box;}
html{color-scheme:light;}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);
  font-size:14px;line-height:1.45;font-feature-settings:"rlig" 1,"calt" 1;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img,svg{display:block;}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px;}
.bili-shell{width:min(100% - 32px,var(--shell));margin-inline:auto;}
.bili-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(226px,1fr));gap:16px;}
.bili-ico{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;}
.bili-btn{height:38px;padding:0 16px;border-radius:var(--r-pill);border:1px solid transparent;display:inline-flex;
  align-items:center;gap:6px;cursor:pointer;font:inherit;font-weight:700;font-size:13px;transition:.15s;white-space:nowrap;}
.bili-btn--primary{background:var(--primary);color:var(--primary-fg);} .bili-btn--primary:hover{background:#e8214f;}
.bili-btn--ghost{background:var(--card);color:var(--fg);border-color:var(--line);}
.bili-btn--ghost:hover{border-color:var(--primary);color:var(--primary);}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}

/* ============ Task5: 玻璃顶栏 ============ */
.bili-topbar{position:sticky;top:0;z-index:50;height:var(--topbar-h);background:var(--glass-bg);
  -webkit-backdrop-filter:blur(18px) saturate(1.45);backdrop-filter:blur(18px) saturate(1.45);
  border-bottom:1px solid var(--glass-border);}
.bili-topbar__inner{height:100%;display:flex;align-items:center;gap:20px;position:relative;}
.bili-brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:19px;letter-spacing:-.01em;flex:none;}
.bili-brand__mark{width:32px;height:32px;border-radius:10px;flex:none;background:linear-gradient(135deg,#FA3865,#ff6f9c);
  display:grid;place-items:center;color:var(--primary-fg);font-size:14px;line-height:1;box-shadow:0 4px 12px -4px rgba(250,56,101,.6);}
.bili-brand b{color:var(--primary);}
.bili-nav{display:flex;align-items:center;gap:2px;flex:none;}
.bili-nav__link{padding:8px 12px;border-radius:var(--r-pill);color:var(--muted-fg);font-weight:500;
  transition:color .15s,background .15s;white-space:nowrap;}
.bili-nav__link:hover{color:var(--fg);background:var(--muted);}
.bili-search{position:absolute;left:50%;transform:translateX(-50%);width:min(38vw,440px);display:flex;
  align-items:center;gap:8px;height:40px;padding:0 6px 0 16px;border-radius:var(--r-pill);
  background:var(--card);border:1px solid var(--line);}
.bili-search .bili-ico{width:17px;height:17px;color:var(--muted-fg);}
.bili-search input{border:0;background:transparent;outline:0;flex:1;min-width:0;font:inherit;font-size:13.5px;color:var(--fg);}
.bili-search input::placeholder{color:var(--muted-fg);}
.bili-search__go{height:28px;padding:0 12px;border-radius:var(--r-pill);border:0;cursor:pointer;
  background:var(--primary);color:var(--primary-fg);font:inherit;font-weight:700;font-size:12.5px;}
.bili-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none;}
@media (max-width:1000px){.bili-search{display:none;} .bili-nav{display:none;}}

/* ============ Task6: 页脚 ============ */
.bili-footer{margin-top:56px;border-top:1px solid var(--line);background:var(--card);}
.bili-footer__inner{padding:28px 0 34px;display:flex;flex-wrap:wrap;gap:24px 48px;align-items:flex-start;}
.bili-footer__brand{font-weight:900;font-size:16px;display:flex;align-items:center;gap:8px;}
.bili-footer__brand .bili-brand__mark{width:26px;height:26px;border-radius:8px;font-size:11px;}
.bili-footer__col{display:flex;flex-direction:column;gap:8px;}
.bili-footer__col h4{margin:0 0 4px;font-size:13px;font-weight:800;color:var(--fg);}
.bili-footer__col a{color:var(--muted-fg);font-size:12.5px;}
.bili-footer__col a:hover{color:var(--primary);}
.bili-footer__note{width:100%;color:var(--muted-fg);font-size:12px;border-top:1px solid var(--line-soft);padding-top:16px;}

/* ============ Task7: 16:9 视频卡片 ============ */
.bili-cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:#111;border-radius:0;}
.bili-cover__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(18px);transform:scale(1.15);z-index:0;}
.bili-cover__img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1;}
.bili-cover::after{content:"";position:absolute;inset:0;background:var(--scrim);z-index:2;}
.bili-cover__pills{position:absolute;left:8px;bottom:8px;z-index:3;display:flex;gap:6px;}
.bili-opill{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--r-pill);
  background:var(--overlay);color:var(--primary-fg);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;}
.bili-cover__dur{position:absolute;right:8px;bottom:8px;z-index:3;height:22px;padding:0 8px;display:inline-flex;
  align-items:center;border-radius:var(--r-pill);background:var(--overlay);color:var(--primary-fg);font-size:11.5px;font-weight:600;}
.bili-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;
  cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s;}
.bili-card:hover{transform:translateY(-4px);border-color:hsl(var(--tone-pink)/.45);box-shadow:0 14px 30px -18px rgba(17,17,20,.35);}
.bili-card__body{padding:11px 12px 13px;}
.bili-card__title{font-size:14.5px;font-weight:800;line-height:1.35;margin:0 0 8px;color:var(--fg);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em;transition:color .15s;}
.bili-card:hover .bili-card__title{color:var(--primary);}
.bili-card__meta{display:flex;align-items:center;gap:6px;color:var(--muted-fg);font-size:12px;}
.bili-score{margin-left:auto;color:hsl(var(--tone-amber));font-weight:800;font-variant-numeric:tabular-nums;}

/* ============ Task8: 分页 ============ */
.bili-page{display:flex;align-items:center;justify-content:center;gap:8px;margin:32px 0;flex-wrap:wrap;}
.bili-page__i{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;
  border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line);color:var(--fg);
  font-weight:600;font-size:13px;transition:.15s;}
.bili-page__i:hover{border-color:var(--primary);color:var(--primary);}
.bili-page__i--on{background:var(--primary);border-color:var(--primary);color:var(--primary-fg);}
.bili-page__i--on:hover{color:var(--primary-fg);}

/* ============ Task9: 彩色分类条 ============ */
.bili-cats{padding:18px 0 4px;}
.bili-cats__strip{display:flex;gap:10px;flex-wrap:wrap;}
.bili-cat{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--r-pill);
  cursor:pointer;font-weight:600;font-size:13px;color:var(--muted-fg);background:hsl(var(--tone)/.04);
  border:1px solid hsl(var(--tone)/.16);transition:.15s;}
.bili-cat:hover{color:var(--fg);background:hsl(var(--tone)/.09);border-color:hsl(var(--tone)/.32);}
.bili-cat .bili-ico{width:15px;height:15px;color:hsl(var(--tone));}
.bili-cat--active{color:hsl(var(--tone));background:hsl(var(--tone)/.1);border-color:hsl(var(--tone)/.38);font-weight:700;}

/* ============ Task9: Hero（大图 + 弹幕 + 精选） ============ */
.bili-cover__sheen{position:absolute;inset:0;z-index:2;
  background:radial-gradient(120% 80% at 15% 10%,rgba(255,255,255,.28),transparent 55%);}
.bili-badge{position:absolute;left:8px;top:8px;z-index:2;height:24px;padding:0 10px;display:inline-flex;
  align-items:center;gap:5px;border-radius:var(--r-pill);background:var(--primary);color:var(--primary-fg);
  font-size:12px;font-weight:800;box-shadow:0 4px 12px -4px rgba(250,56,101,.7);}
.bili-badge .bili-ico{width:13px;height:13px;}
.bili-badge--live{background:hsl(var(--tone-sky));box-shadow:0 4px 12px -4px hsl(var(--tone-sky) / .7);}

.bili-hero{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:8px;}
.bili-featured{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--card);}
.bili-featured .bili-cover{aspect-ratio:21/9;}
/* Hero/Pick 用真实演示封面（内嵌片名文字），裁切铺满避免与下方标题重复露出 */
.bili-featured .bili-cover__img,.bili-pick .bili-cover__img{object-fit:cover;}
.bili-featured__info{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:22px;}
.bili-featured__title{font-size:26px;font-weight:900;color:#fff;margin:0 0 6px;letter-spacing:-.01em;text-wrap:balance;}
.bili-featured__sub{color:rgba(255,255,255,.82);font-size:13.5px;font-weight:500;margin-bottom:14px;}
.bili-featured__cta{display:flex;gap:10px;align-items:center;}
.bili-featured .bili-btn--ghost{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.35);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.bili-featured .bili-btn--ghost:hover{background:rgba(255,255,255,.26);border-color:#fff;color:#fff;}

.bili-danmaku{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none;}
.bili-dm{position:absolute;white-space:nowrap;color:rgba(255,255,255,.9);font-weight:600;font-size:14px;
  text-shadow:0 1px 3px rgba(0,0,0,.5);will-change:transform;}
.bili-dm1{top:16%;animation:bili-fly 13s linear infinite;}
.bili-dm2{top:34%;animation:bili-fly 17s linear infinite;animation-delay:-6s;}
.bili-dm3{top:52%;animation:bili-fly 15s linear infinite;animation-delay:-11s;}
@keyframes bili-fly{from{transform:translateX(105%);}to{transform:translateX(-120%);}}

.bili-hero__side{display:grid;grid-template-rows:1fr 1fr;gap:16px;}
.bili-pick{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);}
.bili-pick .bili-cover{height:100%;aspect-ratio:auto;}
.bili-pick__info{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:14px 16px;}
.bili-pick__title{font-size:16px;font-weight:900;color:#fff;margin:0 0 2px;}
.bili-pick__sub{font-size:12px;color:rgba(255,255,255,.8);font-weight:500;}

/* ============ Task9: 内容分区 ============ */
.bili-section{margin-top:34px;}
.bili-section__head{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.bili-section__title{font-size:20px;font-weight:900;margin:0;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;}
.bili-section__title .bili-ico{width:20px;height:20px;color:var(--primary);}
.bili-section__title.bili-t-sky .bili-ico{color:hsl(var(--tone-sky));}
.bili-section__title.bili-t-amber .bili-ico{color:hsl(var(--tone-amber));}
.bili-section__more{margin-left:auto;color:var(--muted-fg);font-weight:600;font-size:13px;display:inline-flex;
  align-items:center;gap:2px;transition:color .15s;}
.bili-section__more:hover{color:var(--primary);}
.bili-section__more .bili-ico{width:16px;height:16px;}

@media (max-width:1000px){
  .bili-hero{grid-template-columns:1fr;}
  .bili-hero__side{grid-template-rows:none;grid-template-columns:1fr 1fr;}
  .bili-pick .bili-cover{aspect-ratio:16/9;}
}
@media (max-width:560px){
  .bili-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px;}
  .bili-hero__side{grid-template-columns:1fr;}
  .bili-featured__title{font-size:20px;}
  .bili-cats{padding-top:14px;}
}

/* ============ Task10: 分类/筛选列表页——面包屑/标题/筛选条 ============ */
.bili-list-crumb{display:flex;align-items:center;gap:6px;margin-top:18px;color:var(--muted-fg);font-size:13px;flex-wrap:wrap;}
.bili-list-crumb a:hover{color:var(--primary);}
.bili-list-crumb .bili-ico{width:13px;height:13px;color:var(--muted-fg);}
.bili-list-title{font-size:24px;font-weight:900;margin:10px 0 18px;letter-spacing:-.01em;}
.bili-list-grid{margin-top:4px;}

.bili-filter{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 18px;margin-bottom:22px;display:flex;flex-direction:column;gap:12px;}
.bili-filter__row{display:flex;align-items:flex-start;gap:14px;}
.bili-filter__row + .bili-filter__row{border-top:1px solid var(--line-soft);padding-top:12px;}
.bili-filter__label{flex:none;width:44px;padding-top:5px;color:var(--muted-fg);font-size:13px;font-weight:700;}
.bili-filter__pills{display:flex;flex-wrap:wrap;gap:8px;}
.bili-filter__pill{display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:var(--r-pill);
  color:var(--muted-fg);font-size:12.5px;font-weight:600;background:transparent;border:1px solid transparent;
  cursor:pointer;transition:.15s;white-space:nowrap;}
.bili-filter__pill:hover{color:var(--fg);background:var(--muted);}
.bili-filter__pill--on{color:var(--primary-fg);background:var(--primary);font-weight:700;}
.bili-filter__pill--on:hover{color:var(--primary-fg);background:#e8214f;}

@media (max-width:560px){
  .bili-filter{padding:12px 14px;}
  .bili-filter__row{flex-direction:column;gap:8px;}
  .bili-filter__label{width:auto;padding-top:0;}
}

/* ============ Task11: 详情页——backdrop/信息区/播放源tab/选集网格 ============ */
.bili-detail{padding-bottom:8px;}
.bili-detail__backdrop{position:relative;height:clamp(220px,34vw,400px);overflow:hidden;background:#15151a;}
.bili-detail__backdrop-img{width:100%;height:100%;object-fit:cover;filter:blur(36px) saturate(1.25) brightness(.7);transform:scale(1.2);}
.bili-detail__backdrop-scrim{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(9,9,11,.25) 0%,rgba(9,9,11,.42) 55%,var(--bg) 96%);}

.bili-detail__hero{position:relative;z-index:2;margin-top:-150px;display:flex;gap:28px;align-items:flex-end;padding-bottom:30px;}
.bili-detail__poster{width:220px;flex:none;aspect-ratio:2/3;border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--line);box-shadow:0 24px 44px -16px rgba(0,0,0,.5);background:var(--muted);}
.bili-detail__poster img{width:100%;height:100%;object-fit:cover;display:block;}
.bili-detail__info{flex:1;min-width:0;padding-bottom:6px;}
.bili-detail__title{font-size:30px;font-weight:900;letter-spacing:-.01em;margin:0 0 10px;color:var(--fg);text-shadow:0 1px 2px rgba(0,0,0,.06);}
.bili-detail__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--muted-fg);font-size:13.5px;font-weight:600;margin-bottom:14px;}
.bili-detail__score{display:inline-flex;align-items:center;gap:4px;color:hsl(var(--tone-amber));font-weight:800;font-variant-numeric:tabular-nums;}
.bili-detail__score .bili-ico{width:15px;height:15px;fill:currentColor;stroke:currentColor;}
.bili-detail__dot{color:var(--border);}
.bili-detail__crew{color:var(--muted-fg);font-size:13.5px;line-height:1.7;margin-bottom:12px;}
.bili-detail__crew p{margin:0;}
.bili-detail__crew-label{color:var(--fg);font-weight:700;}
.bili-detail__blurb{color:var(--fg);font-size:13.5px;line-height:1.7;margin:0 0 18px;max-width:72ch;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.bili-detail__cta{display:flex;gap:12px;flex-wrap:wrap;}
.bili-detail__play-btn{height:44px;padding:0 24px;font-size:14px;box-shadow:0 10px 24px -8px rgba(250,56,101,.55);}
.bili-detail__play-btn .bili-ico{width:18px;height:18px;fill:currentColor;stroke:currentColor;}

@media (max-width:760px){
  .bili-detail__backdrop{height:clamp(160px,46vw,240px);}
  .bili-detail__hero{flex-direction:column;align-items:center;text-align:center;margin-top:-90px;gap:14px;}
  .bili-detail__poster{width:148px;}
  .bili-detail__meta,.bili-detail__cta{justify-content:center;}
  .bili-detail__crew{text-align:center;}
  .bili-detail__title{font-size:22px;}
  .bili-detail__blurb{max-width:100%;}
}

/* ---- 播放源 tab ---- */
.bili-source-tab{margin-top:8px;}
.bili-source-tab__bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.bili-source-tab__btn{display:inline-flex;align-items:center;height:32px;padding:0 16px;border-radius:var(--r-pill);
  background:var(--card);border:1px solid var(--line);color:var(--muted-fg);font-size:13px;font-weight:700;transition:.15s;}
.bili-source-tab__btn:hover{color:var(--primary);border-color:var(--primary);}
.bili-source-tab__btn--active{background:var(--primary);border-color:var(--primary);color:var(--primary-fg);}
.bili-source-tab__btn--active:hover{color:var(--primary-fg);}

/* ---- 选集网格（药丸） ---- */
.bili-episodes{margin-bottom:16px;scroll-margin-top:calc(var(--topbar-h) + 16px);}
.bili-episodes__label{margin:0 0 8px;font-size:13px;font-weight:800;color:var(--muted-fg);}
.bili-episodes__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;}
.bili-episodes__pill{display:flex;align-items:center;justify-content:center;height:38px;padding:0 10px;
  border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line);color:var(--fg);
  font-size:13px;font-weight:600;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.15s;}
.bili-episodes__pill:hover{border-color:var(--primary);color:var(--primary);background:var(--secondary);}
.bili-episodes__empty{color:var(--muted-fg);font-size:13px;padding:10px 0;}

/* ============ Task12: 播放页（左舞台 + 右选集/换源侧栏 + 弹幕条）============ */
.bili-play{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start;margin-top:18px;}
.bili-play__main{min-width:0;}

/* 播放器舞台：仅提供圆角外框，内部 .player_video/.MacPlayer 尺寸由播放器内核/脚本控制 */
.bili-play__stage{position:relative;aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;background:#000;
  border:1px solid var(--line);box-shadow:0 18px 40px -24px rgba(0,0,0,.5);}
/* 播放器内核两层容器绝对填满 16:9 舞台。default 的 .embed-responsive{height:11.8rem} 靠更高选择器特异性
   覆盖（无需 !important）；仅 maccms JS 注入的内联 padding-bottom 必须 !important 才能压过——这是唯一一处，
   针对单个属性，用于抵消第三方脚本的内联样式。 */
.bili-play__stage .player_video,
.bili-play__stage .MacPlayer{position:absolute;inset:0;width:100%;height:100%;padding-bottom:0!important;}
.bili-play__stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.bili-play__stage .play_tips{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;color:#fff;background:rgba(0,0,0,.72);}
.bili-play__stage .play_tips h3{margin:0;font-size:16px;font-weight:800;}
.bili-play__stage .play_tips p{margin:0;color:rgba(255,255,255,.7);font-size:13px;}
.bili-play__stage .lock_tipe_box{position:absolute;inset:0;z-index:1;background-size:cover;background-position:center;filter:blur(20px) brightness(.5);}
.bili-play__stage .popedom-play-gate-wrap{background:rgba(0,0,0,.82);overflow:auto;}

/* 弹幕输入条 */
.bili-danmu-bar{display:flex;align-items:center;gap:10px;height:46px;margin-top:14px;padding:0 8px 0 16px;
  border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line);}
.bili-danmu-bar__ico{width:18px;height:18px;color:var(--primary);flex:none;}
.bili-danmu-bar__input{flex:1;min-width:0;border:0;background:transparent;outline:0;font:inherit;font-size:13.5px;color:var(--fg);}
.bili-danmu-bar__input::placeholder{color:var(--muted-fg);}
.bili-danmu-bar__toggle{height:30px;padding:0 13px;border-radius:var(--r-pill);border:1px solid var(--line);
  background:transparent;color:var(--muted-fg);font:inherit;font-weight:700;font-size:12.5px;cursor:pointer;flex:none;transition:.15s;}
.bili-danmu-bar__toggle.is-dm-on{color:var(--primary);border-color:hsl(var(--tone-pink)/.4);background:var(--secondary);}
.bili-danmu-bar__send{height:32px;padding:0 20px;border-radius:var(--r-pill);border:0;cursor:pointer;flex:none;
  background:var(--primary);color:var(--primary-fg);font:inherit;font-weight:700;font-size:12.5px;transition:.15s;}
.bili-danmu-bar__send:hover{background:#e8214f;}

/* 工具条：上/下集 + 操作 */
.bili-play__toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px;}
.bili-play__nav{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;border-radius:var(--r-pill);
  background:var(--card);border:1px solid var(--line);color:var(--fg);font-weight:700;font-size:13px;transition:.15s;}
.bili-play__nav:hover{border-color:var(--primary);color:var(--primary);}
.bili-play__nav .bili-ico{width:16px;height:16px;}
.bili-play__nav.is-disabled{opacity:.4;pointer-events:none;}
.bili-play__spacer{margin-left:auto;}
.bili-play__act{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:var(--r-pill);
  background:transparent;border:1px solid transparent;color:var(--muted-fg);font-weight:600;font-size:13px;cursor:pointer;transition:.15s;}
.bili-play__act:hover{color:var(--fg);background:var(--muted);}
.bili-play__act.is-on{color:var(--primary);}
.bili-play__act .iconfont{font-size:15px;line-height:1;}

/* 视频信息区 */
.bili-play__info{margin-top:18px;padding:18px 20px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);}
.bili-play__info-title{font-size:16px;font-weight:900;margin:0 0 10px;}
.bili-play__now{display:flex;align-items:center;gap:6px;color:var(--muted-fg);font-size:12.5px;font-weight:600;margin:0 0 8px;}
.bili-play__now b{color:var(--primary);font-weight:700;}
.bili-play__now .bili-ico{width:15px;height:15px;color:var(--primary);}
.bili-play__title{font-size:22px;font-weight:900;letter-spacing:-.01em;margin:0 0 10px;color:var(--fg);}
.bili-play__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--muted-fg);font-size:13px;font-weight:600;margin-bottom:12px;}
.bili-play__meta a:hover{color:var(--primary);}
.bili-play__crew{color:var(--muted-fg);font-size:13px;line-height:1.7;margin-bottom:10px;}
.bili-play__crew p{margin:0;}
.bili-play__crew b{color:var(--fg);font-weight:700;}
.bili-play__blurb{color:var(--fg);font-size:13.5px;line-height:1.75;margin:0;}

/* 右侧选集/换源侧栏 */
.bili-play__side{position:sticky;top:calc(var(--topbar-h) + 16px);align-self:start;border-radius:var(--r-lg);
  background:var(--card);border:1px solid var(--line);overflow:hidden;}
.bili-play__side-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  padding:16px 18px 12px;border-bottom:1px solid var(--line-soft);}
.bili-play__side-title{font-size:16px;font-weight:900;margin:0;}
.bili-play__ep-count{color:var(--muted-fg);font-size:12.5px;font-weight:600;flex:none;}
.bili-play__side-body{padding:14px 18px 18px;max-height:min(72vh,760px);overflow-y:auto;}
.bili-play__side .bili-source-tab__bar{margin-bottom:14px;}
.bili-play__side .bili-source-tab__btn .bili-ico{width:14px;height:14px;margin-right:5px;}
.bili-play__eps{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:10px;}
.bili-play__ep{display:flex;align-items:center;justify-content:center;height:40px;padding:0 8px;border-radius:var(--r-md);
  background:var(--bg);border:1px solid var(--line);color:var(--fg);font-size:13px;font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.15s;}
.bili-play__ep:hover{border-color:var(--primary);color:var(--primary);background:var(--secondary);}
.bili-play__ep--active{background:var(--primary);border-color:var(--primary);color:var(--primary-fg);}
.bili-play__ep--active:hover{color:var(--primary-fg);background:var(--primary);}

@media (max-width:1000px){
  .bili-play{grid-template-columns:1fr;}
  .bili-play__side{position:static;}
  .bili-play__side-body{max-height:none;}
}
@media (max-width:560px){
  .bili-play__title{font-size:19px;}
  .bili-play__eps{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));}
}

/* ============ Task13: 下载页 ============ */
.bili-down__hero{display:flex;gap:22px;padding:20px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);}
.bili-down__poster{width:156px;flex:none;aspect-ratio:2/3;border-radius:var(--r-md);overflow:hidden;background:var(--muted);border:1px solid var(--line);}
.bili-down__poster img{width:100%;height:100%;object-fit:cover;display:block;}
.bili-down__info{flex:1;min-width:0;}
.bili-down__group + .bili-down__group{margin-top:16px;}
.bili-down__group-title{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:13px;font-weight:800;color:var(--fg);}
.bili-down__group-title .bili-ico{width:15px;height:15px;color:hsl(var(--tone-sky));}
.bili-down__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.bili-down__item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-md);
  background:var(--bg);border:1px solid var(--line);}
.bili-down__item--empty{color:var(--muted-fg);font-size:13px;justify-content:center;}
.bili-down__name{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bili-down__dl{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 14px;flex:none;border-radius:var(--r-pill);
  background:var(--primary);color:var(--primary-fg);font-size:12.5px;font-weight:700;transition:.15s;}
.bili-down__dl:hover{background:#e8214f;}
.bili-down__dl .bili-ico{width:14px;height:14px;}
@media (max-width:560px){
  .bili-down__hero{flex-direction:column;align-items:center;text-align:center;}
  .bili-down__poster{width:132px;}
  .bili-down__info .bili-play__meta,.bili-down__info .bili-detail__cta{justify-content:center;}
}

/* ============ Task13: 搜索页 ============ */
.bili-search-page{margin-top:22px;}
.bili-search-hero{margin-bottom:20px;}
.bili-search-form{display:flex;align-items:center;gap:10px;height:52px;padding:0 8px 0 20px;
  border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line);
  max-width:720px;transition:border-color .15s,box-shadow .15s;}
.bili-search-form:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--secondary);}
.bili-search-form__ico{width:20px;height:20px;color:var(--muted-fg);flex:none;}
.bili-search-form__input{flex:1;min-width:0;border:0;background:transparent;outline:0;font:inherit;font-size:15px;color:var(--fg);}
.bili-search-form__input::placeholder{color:var(--muted-fg);}
.bili-search-form__go{height:38px;padding:0 22px;flex:none;border-radius:var(--r-pill);border:0;cursor:pointer;
  background:var(--primary);color:var(--primary-fg);font:inherit;font-weight:800;font-size:13.5px;transition:.15s;}
.bili-search-form__go:hover{background:#e8214f;}
.bili-search-summary{margin:14px 2px 0;color:var(--muted-fg);font-size:13.5px;font-weight:600;}
.bili-search-summary b{color:var(--primary);font-weight:800;}
.bili-search-sort{display:flex;gap:8px;margin-bottom:18px;}
.bili-search-sort__i{display:inline-flex;align-items:center;height:32px;padding:0 16px;border-radius:var(--r-pill);
  background:var(--card);border:1px solid var(--line);color:var(--muted-fg);font-size:12.5px;font-weight:700;transition:.15s;}
.bili-search-sort__i:hover{color:var(--primary);border-color:var(--primary);}
.bili-search-sort__i--on{background:var(--primary);border-color:var(--primary);color:var(--primary-fg);}
.bili-search-sort__i--on:hover{color:var(--primary-fg);}

/* 空态（搜索/下载共用） */
.bili-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:56px 20px;color:var(--muted-fg);}
.bili-empty--side{padding:36px 12px;}
.bili-empty__ico{width:52px;height:52px;color:var(--border);margin-bottom:14px;}
.bili-empty--side .bili-empty__ico{width:40px;height:40px;margin-bottom:10px;}
.bili-empty__title{margin:0 0 6px;font-size:16px;font-weight:800;color:var(--fg);}
.bili-empty--side .bili-empty__title{font-size:14px;}
.bili-empty__sub{margin:0;font-size:13px;color:var(--muted-fg);}

/* ============ Task15: 响应式三档收尾 ============ */
/* 顶栏汉堡菜单：≤1000px 隐藏横向导航/居中搜索后，改由汉堡按钮展开同一份 nav+search
   （.bili-topbar__panel 桌面态 display:contents 不影响现有布局，仅移动态变为下拉面板） */
.bili-burger{display:none;flex:none;width:38px;height:38px;align-items:center;justify-content:center;
  border-radius:var(--r-pill);border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;}
.bili-burger:hover{border-color:var(--primary);color:var(--primary);}
.bili-burger .bili-ico{width:18px;height:18px;}
.bili-topbar__panel{display:contents;}
.bili-actions .bili-btn__label{white-space:nowrap;}

@media (max-width:1000px){
  .bili-burger{display:inline-flex;}
  .bili-topbar__panel{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:10px;
    padding:14px 16px 18px;background:var(--card);border-bottom:1px solid var(--line);border-radius:0 0 var(--r-lg) var(--r-lg);
    box-shadow:0 20px 34px -22px rgba(0,0,0,.4);max-height:calc(100vh - var(--topbar-h));overflow-y:auto;}
  .bili-topbar.is-menu-open .bili-topbar__panel{display:flex;}
  .bili-topbar__panel .bili-nav{display:flex;flex-direction:column;gap:2px;width:100%;}
  .bili-topbar__panel .bili-nav__link{padding:11px 14px;border-radius:var(--r-md);}
  .bili-topbar__panel .bili-search{display:flex;position:static;width:100%;transform:none;}
}

/* 会员/列表/播放通用：≤560px 顶栏操作区收缩，仅保留登录主按钮文案 */
@media (max-width:560px){
  .bili-actions{gap:6px;}
  .bili-actions .bili-btn{padding:0 10px;}
  .bili-actions .bili-btn--ghost .bili-btn__label{display:none;}
}

/* ============ Task16: 错误页(404/403/500/jump/msg)主题化 ============ */
.bili-errorpage{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 40px);padding:40px 16px;}
.bili-errorcard{width:100%;max-width:420px;padding:40px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;}
.bili-errorcard__icon{width:64px;height:64px;border-radius:50%;display:flex;flex:none;align-items:center;justify-content:center;
  margin-bottom:18px;background:var(--secondary);color:var(--primary);}
.bili-errorcard__icon .bili-ico{width:32px;height:32px;}
.bili-errorcard__code{margin:0;font-size:44px;font-weight:900;letter-spacing:-.02em;color:var(--fg);}
.bili-errorcard__title{margin:2px 0 10px;font-size:17px;font-weight:800;color:var(--fg);}
.bili-errorcard__desc{margin:0 0 24px;color:var(--muted-fg);font-size:13.5px;line-height:1.6;}
.bili-errorcard__desc b{color:var(--fg);}
.bili-errorcard__cta{padding:0 28px;}
.bili-errorcard__lang{margin-top:20px;display:flex;align-items:center;gap:8px;color:var(--muted-fg);font-size:12.5px;}
.bili-errorcard__lang .lang{display:inline-flex;align-items:center;gap:5px;color:var(--muted-fg);}
.bili-errorcard__lang .lang:hover{color:var(--primary);}
.bili-errorcard__lang .lang-img{width:16px;height:16px;border-radius:50%;object-fit:cover;}
.bili-errorcard__lang-sep{color:var(--border);}
.bili-errorcard__wait{color:var(--primary);font-weight:800;}

/* ============ 激活态文字色 ============
   未选中/悬浮态的链接色已由 tokens.css 接管 --tpl-* 统一处理（default 的 a:link → 我的 muted）。
   仅激活态需在此压过：粉底激活项 → 白字，顶栏/分类激活项 → 粉字。
   用 `a.类名`(0,1,1，与 default a:link 同特异性、靠加载在后取胜)，无 !important。 */
a.bili-btn--primary,
a.bili-page__i--on,
a.bili-filter__pill--on,
a.bili-source-tab__btn--active,
a.bili-play__ep--active,
a.bili-search-sort__i--on{color:var(--primary-fg);}
a.bili-btn--ghost{color:var(--fg);}
a.bili-nav__link--active,a.bili-cat--active{color:var(--primary);}
