
/* ========== One UI 主题变量 双主题切换 ========== */
:root{
  --text:#ffffff;
  --muted:rgba(235,235,245,.68);
  --line:rgba(255,255,255,.14);
  --soft:rgba(28,28,36,.42);
  --soft-blur:rgba(22,22,30,.62);
  /* Apple 系统色（Dark） */
  --sys-blue:#0A84FF;
  --sys-indigo:#5E5CE6;
  --sys-purple:#BF5AF2;
  --sys-pink:#FF375F;
  --sys-orange:#FF9F0A;
  --sys-yellow:#FFD60A;
  --sys-green:#30D158;
  --sys-teal:#64D2FF;
  --sys-cyan:#40C8E0;
  /* 主强调：暖橙 → 珊瑚粉，更像 Apple TV / App Store 氛围 */
  --accent:#FF7A45;
  --accent2:#FFB340;
  --accent-grad:linear-gradient(135deg,#FF7A45 0%,#FF9F0A 55%,#FFD60A 100%);
  --accent-rgb:255,122,69;
  --accent2-rgb:255,179,64;
  --accent-l1:#FF9466;
  --accent-d1:#E85A20;
  --accent-d2:#F06A2A;
  --green:#30D158;
  --green-glow:0 0 16px rgba(48,209,88,.4);
  --green-rgb:48,209,88;
  --green-l1-rgb:100,230,140;
  --green-d1-rgb:32,170,70;
  /* 圆角阶梯：sm 小控件 / md 卡片·列表 / lg 面板 / xl 弹窗 / full 胶囊 */
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:18px;
  --radius-xl:20px;
  --radius-full:999px;
  /* 阴影阶梯 */
  --shadow-soft:0 4px 14px rgba(0,0,0,.22);
  --shadow-mid:0 8px 24px rgba(0,0,0,.30);
  --shadow-deep:0 12px 36px rgba(0,0,0,.42);
  /* 字重阶梯：body 500 / title 600 / strong 700 / display 800 */
  --fw-body:500;
  --fw-title:600;
  --fw-strong:700;
  --fw-display:800;
  /* Apple 风格曲线：默认减速 + 轻弹簧 */
  --ease-out:cubic-bezier(0.22,1,0.36,1);
  --ease-spring:cubic-bezier(0.34,1.4,0.64,1);
  --ease-press:cubic-bezier(0.2,0,0,1);
  --transition-fast:all 0.22s var(--ease-out);
  --transition-slow:all 0.38s var(--ease-out);
  --bg:#0B0B10;
  --bar-h:56px;
  --gap:10px;        /* 卡片间距 = 屏幕边距，统一留白 */

  /* ===== 全屏安全区：优先读 Native 注入的 --fm-* 变量，兜底用 env()，两者取大不叠加 ===== */
  --safe-top:    max(var(--fm-safe-top,    0px), env(safe-area-inset-top,    0px));
  --safe-bottom: max(var(--fm-safe-bottom, 0px), env(safe-area-inset-bottom, 0px));
  --safe-left:   max(var(--fm-safe-left,   0px), env(safe-area-inset-left,   0px));
  --safe-right:  max(var(--fm-safe-right,  0px), env(safe-area-inset-right,  0px));
}
*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}

/* 禁止长按选中按钮/胶囊文字 */
button,.btn,.chip,.src-tab,.src-tab-top,.src-toggle,.search-toggle,
.custom-modal-btn,.nav-mode-switch button,.pan-open-btn,.det-play-btn,
.det-res-tab,.pan-search-tab,.settings-pill-icon,.search-pill-icon{
  -webkit-user-select:none !important;
  user-select:none !important;
  -webkit-touch-callout:none !important;
  -webkit-user-drag:none !important;
}

html,body{
  margin:0;padding:0;
  width:100%;height:100%;
  min-height:100%;
  /* Apple 暗色：多层彩色环境光（蓝紫橙）+ 深空底 */
  background:
    radial-gradient(ellipse 90% 70% at 8% -10%, rgba(10,132,255,.28) 0%, transparent 55%),
    radial-gradient(ellipse 80% 60% at 100% 0%, rgba(191,90,242,.22) 0%, transparent 50%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(255,122,69,.16) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 80% 70%, rgba(48,209,88,.08) 0%, transparent 50%),
    linear-gradient(168deg, #12121A 0%, var(--bg) 42%, #0E0E16 100%);
  background-color:var(--bg);
  background-attachment:fixed;
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Samsung Sans",Arial,sans-serif;
  /* 防止 iOS 双击缩放 */
  touch-action:manipulation;
  /* 锁死 document 滚动：顶栏不随内容滚动，仅 #content 滚动 */
  position:fixed;
  top:0;right:0;bottom:0;left:0;
  overflow:hidden !important;
  overscroll-behavior:none;
}
/* App 内：半透明叠在壳子背景上，中性光晕 */
html.fm-native,html.fm-native body{
  background:
    radial-gradient(ellipse 90% 70% at 8% -10%, rgba(10,132,255,.22) 0%, transparent 55%),
    radial-gradient(ellipse 80% 60% at 100% 0%, rgba(191,90,242,.16) 0%, transparent 50%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(255,122,69,.12) 0%, transparent 55%),
    linear-gradient(165deg,
      rgba(12,12,20,0.72) 0%,
      rgba(11,11,16,0.55) 45%,
      rgba(12,12,18,0.78) 100%
    );
  background-attachment:fixed;
}
/* 全局高斯模糊雾层：无论 App 背景是什么，都蒙一层磨砂雾 */
#bgfog{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(ellipse 90% 55% at 12% 8%, rgba(10,132,255,0.10) 0%, transparent 62%),
    radial-gradient(ellipse 70% 45% at 88% 78%, rgba(191,90,242,0.08) 0%, transparent 58%),
    rgba(11,11,16,.32);
  backdrop-filter:blur(56px) saturate(1.35) brightness(1.04);
  -webkit-backdrop-filter:blur(56px) saturate(1.35) brightness(1.04);
}
/* iOS 液态玻璃：全局彩色环境光 + 多层光斑 */
body::before{
  content:'';
  position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(ellipse 90% 55% at 12% 8%, rgba(10,132,255,0.14) 0%, transparent 62%),
    radial-gradient(ellipse 70% 45% at 88% 18%, rgba(191,90,242,0.12) 0%, transparent 58%),
    radial-gradient(ellipse 55% 40% at 50% 90%, rgba(255,122,69,0.10) 0%, transparent 65%),
    radial-gradient(ellipse 40% 30% at 70% 40%, rgba(48,209,88,0.06) 0%, transparent 70%);
}
/* 顶部微亮 + 轻微暖色，避免发灰 */
body::after{
  content:'';
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 26%, transparent 100%),
    radial-gradient(ellipse 100% 40% at 50% 0%, rgba(255,179,64,0.06) 0%, transparent 70%);
}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.05)}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:var(--radius-full)}

/* ========== 主容器：铺满视口，顶栏不参与滚动 ========== */
.app{
  position:absolute;
  top:0;right:0;bottom:0;left:0;
  width:100%;
  height:100%;
  height:var(--fm-web-height, 100%);
  display:-webkit-flex;
  display:flex;
  -webkit-flex-direction:column;
  flex-direction:column;
  overflow:hidden !important;
  box-sizing:border-box;
  padding-top:    calc(var(--safe-top) + 2px);
  padding-bottom: calc(var(--safe-bottom) + 8px);
  padding-left:   calc(var(--safe-left)   + var(--gap));
  padding-right:  calc(var(--safe-right)  + var(--gap));
}
html.chrome-normal .app{
  padding-top: var(--gap);
}
/* 顶栏：不收缩、不滚动 */
.navrow{
  -webkit-flex-shrink:0;
  flex-shrink:0 !important;
}
.status{
  -webkit-flex-shrink:0;
  flex-shrink:0 !important;
}
/* 内容区：唯一纵向滚动容器（隐藏滚动条）；底部为底坞留白 */
#content{
  -webkit-flex:1 1 auto;
  flex:1 1 auto;
  min-height:0 !important;
  height:auto;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:calc(var(--safe-bottom) + 98px); /* 底坞 62 + 浮起 12 + 余量 */
}
html.nav-mode-top #content{
  padding-bottom:calc(var(--safe-bottom) + 24px); /* 顶栏模式无底坞 */
}
#content::-webkit-scrollbar{display:none;width:0;height:0}
/* 底部不再额外压暗：避免底坞/站源图标发灰看不清 */

/* ========== iOS 26 悬浮玻璃导航栏 ========== */
#searchOverlay{
  position:fixed;inset:0;z-index:25;
  backdrop-filter:blur(10px) brightness(0.6);
  -webkit-backdrop-filter:blur(10px) brightness(0.6);
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
  display:flex;align-items:center;justify-content:center;
}
#searchOverlay.show{opacity:1;pointer-events:none}
.search-loading{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;color:#fff;font-size:14px;
  opacity:0;transform:translateY(6px);
  transition:opacity .3s ease .1s,transform .3s ease .1s;
}
#searchOverlay.show .search-loading{opacity:1;transform:translateY(0)}

/* 聚焦态模糊：搜索时站源坞下滑隐藏（已在 .src-row 规则中定义）*/
html.search-focused #status,
html.search-focused #content {
  /* 主页内容高斯模糊 + 压暗（不依赖 WebView 的 backdrop-filter） */
  filter: blur(14px) brightness(0.42) saturate(0.85);
  pointer-events: none !important;
  user-select: none;
  touch-action: none;
  transition: filter .28s ease;
}
/* 注意：filter 不能加在 .navrow 上！filter 会让 navrow 成为其 fixed 后代
   .bottom-dock 的包含块，dock 的 bottom:14px 就会由“视口底部”变成“navrow
   底部”计算，导致底部站源坞被顶到页面顶部上方（搜索时错位）。
   模糊效果只作用在普通流的 .chips 上，dock 用独立的 translateY 下移隐藏。 */
html.search-focused .navrow {
  pointer-events: none;
}
html.search-focused .navrow .chips {
  filter: blur(12px) brightness(0.42) saturate(0.85);
  pointer-events: none;
  transition: filter .28s ease, opacity .28s ease;
  opacity: .5;
}
/* 二级菜单与一级菜单一样：搜索聚焦时进遮罩后模糊，不浮在遮罩上 */
html.search-focused .navrow .subchips,
html.search-focused #chipsSub {
  filter: blur(12px) brightness(0.42) saturate(0.85);
  pointer-events: none !important;
  transition: filter .28s ease, opacity .28s ease;
  opacity: .5;
  z-index: 0;
}
/* 搜索聚焦时：底部站源坞平滑下移隐藏（transform 不触发 navrow 的包含块，安全） */
html.search-focused .bottom-dock {
  opacity: 0;
  transform: translateX(-50%) translateY(170px);
  pointer-events: none;
}
html.search-focused .app {
  pointer-events: none;
}
html.search-focused .app .bar {
  pointer-events: auto;
}
#searchFocusMask {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 19;
  background: transparent;
  touch-action: none;
  pointer-events: none;
  -webkit-tap-highlight-color: transparent;
  transition: background .25s ease, backdrop-filter .25s ease, -webkit-backdrop-filter .25s ease;
}
/* 搜索页：整屏一体暗层，避免搜索框后出现一截渐变/断层 */
html.search-focused #searchFocusMask {
  display: block;
  pointer-events: auto;
  /* 透明暗色遮罩叠在已模糊的主页上，整屏一体 */
  background: rgba(6, 8, 12, 0.55);
  backdrop-filter: blur(8px) saturate(1.2);
  -webkit-backdrop-filter: blur(8px) saturate(1.2);
}
html.search-focused .bar {
  position: fixed; /* 勿改 relative：收起时会顶栏布局跳动闪一下 */
  z-index: 50;
  isolation: isolate;
}

/* ===== 顶部搜索栏：默认隐藏，search-focused 时滑入 ===== */
.bar{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  display:flex;align-items:center;gap:8px;
  flex-wrap:nowrap;
  padding:calc(var(--safe-top) + 10px) 14px 12px;
  background:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border:none;
  border-radius:0;
  box-shadow:none;
  /* 默认：平移到屏幕上方隐藏 */
  transform:translateY(-110%);
  opacity:0;
  pointer-events:none;
  transition:transform .38s cubic-bezier(0.32,0.72,0,1), opacity .28s ease, background .25s ease;
}
html.search-focused .bar{
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
  /* 背景交给全屏 mask，搜索栏本身透明，避免框后出现一截色带 */
  background:transparent;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  border:none;
  border-bottom:none;
  box-shadow:none;
}
.bar-hidden-placeholder-unused{
  position:fixed;
  top:calc(var(--safe-top) + 12px);
  left:50%;
  transform:translateX(-50%);
  z-index:30;
  display:flex;align-items:center;gap:8px;
  flex-wrap:nowrap;
  padding:6px 10px;
  width:calc(100% - 24px);
  max-width:700px;
  /* 液态玻璃背景：多层叠加模拟 iOS 26 效果 */
  background:
    linear-gradient(135deg,
      rgba(255,255,255,0.13) 0%,
      rgba(255,255,255,0.06) 40%,
      rgba(var(--accent-rgb),0.10) 70%,
      rgba(var(--accent2-rgb),0.07) 100%
    );
  backdrop-filter:blur(40px) saturate(1.8) brightness(1.05);
  -webkit-backdrop-filter:blur(40px) saturate(1.8) brightness(1.05);
  border:1px solid rgba(255,255,255,0.22);
  border-top:1px solid rgba(255,255,255,0.32);
  border-radius:999px;
  box-shadow:
    0 8px 32px rgba(0,0,0,0.45),
    0 2px 8px rgba(0,0,0,0.25),
    0 0 0 0.5px rgba(255,255,255,0.08) inset,
    0 1px 0 rgba(255,255,255,0.18) inset;
  transition:all 0.28s cubic-bezier(0.2,0,0.2,1);
}
/* search-focused bar border: handled by bar slide-in */

/* 两个子行合并为同级 flex 子项 */
.bar-top{display:contents}
.bar-bottom{display:contents}
.bar-right{display:contents}

.brand{font-size:18px;font-weight:var(--fw-display);white-space:nowrap;letter-spacing:0.5px;flex-shrink:0}
.brand b{background:var(--accent-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent}

/* 搜索框：iOS 搜索栏式玻璃胶囊 */
.search-wrap{
  position:relative;flex:1;min-width:0;
  border-radius:0;
  padding:0;
  background:transparent;
  box-shadow:none;
}
.search-wrap:focus-within{
  box-shadow:none;
}
.search-wrap:focus-within .search{
  background:rgba(118,118,128,.38);
}
.search{
  position:relative;
  flex:1;min-width:0;display:flex;gap:8px;align-items:center;
  /* iOS 搜索胶囊：在整屏暗层上保持清晰可读 */
  background:rgba(118,118,128,.36);
  border:none;
  border-radius:999px;
  padding:0 10px 0 16px;
  height:42px;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:none;
}
.search input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--text);font-size:16px}
.search input::placeholder{color:var(--muted)}

/* ===== 搜索联想下拉：小海报 + 年份 ===== */
.search-sugg{
  position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;
  background:
    linear-gradient(155deg,
      rgba(255,255,255,0.18) 0%,
      rgba(var(--accent-rgb),.20) 40%,
      rgba(13,17,23,.62) 100%);
  backdrop-filter:blur(36px) saturate(1.9) brightness(1.08);
  -webkit-backdrop-filter:blur(36px) saturate(1.9) brightness(1.08);
  border:1px solid rgba(255,255,255,.28);
  border-top:1px solid rgba(255,255,255,.4);
  border-radius:var(--radius-lg);
  box-shadow:
    0 1px 0 rgba(255,255,255,.2) inset,
    0 20px 50px rgba(0,0,0,.55),
    0 0 0 0.5px rgba(var(--accent-rgb),.15);
  max-height:62vh;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  display:none;
}
.search-sugg.show{display:block}
.sugg-item{
  display:flex;align-items:center;gap:11px;
  padding:8px 12px;cursor:pointer;
  border-bottom:1px solid rgba(255,255,255,.05);
  transition:background .12s;
}
.sugg-item:last-child{border-bottom:0}
.sugg-item:active{background:rgba(var(--accent-rgb),.18)}
@media(hover:hover){.sugg-item:hover{background:rgba(255,255,255,.06)}}
.sugg-poster{
  width:38px;height:54px;flex-shrink:0;
  border-radius:6px;overflow:hidden;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  display:grid;place-items:center;
}
.sugg-poster img{width:100%;height:100%;object-fit:cover;display:block}
.sugg-poster .ph{font-size:16px;opacity:.5}
.sugg-info{flex:1;min-width:0}
.sugg-title{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sugg-meta{margin-top:4px;display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}
.sugg-type{
  padding:1px 7px;border-radius:999px;
  background:rgba(var(--accent-rgb),.14);
  border:1px solid rgba(var(--accent-rgb),.32);
  color:var(--accent);font-weight:var(--fw-strong);font-size:10px;
}
.sugg-year{font-weight:700}
.sugg-loading{padding:14px;text-align:center;color:var(--muted);font-size:13px}

/* ========== 通用按钮 ========== */
.btn{
  position:relative;overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(45,54,68,.9);
  color:var(--text);
  border-radius:var(--radius-full);
  padding:0 16px;
  height:40px;
  font-size:14px;font-weight:700;
  letter-spacing:.3px;
  transition:var(--transition-fast);
  white-space:nowrap;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.btn:active{
  transform:scale(0.92);
  box-shadow:0 1px 4px rgba(0,0,0,.2);
  transition-duration:.1s;
  transition-timing-function:var(--ease-press);
}

/* Primary 按钮（通用） */
.btn.primary{
  background:linear-gradient(135deg,
    rgba(var(--accent-rgb),0.85) 0%,
    rgba(var(--accent2-rgb),0.7) 100%);
  border:1px solid rgba(var(--accent-rgb),.5);
  border-top:1px solid rgba(255,255,255,0.22);
  color:#fff;font-weight:var(--fw-display);
  padding:0 18px;
  box-shadow:
    0 2px 10px rgba(var(--accent-rgb),.35),
    0 1px 0 rgba(255,255,255,0.14) inset;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.btn.primary:active{
  box-shadow:0 1px 5px rgba(var(--accent-rgb),.2);
}
/* 搜索框内提交：纯图标，无背景圆 */
.search-submit-btn{
  width:auto;height:auto;min-width:0;padding:6px;flex-shrink:0;
  border:none;border-radius:0;cursor:pointer;
  background:transparent !important;
  color:rgba(255,255,255,.72);
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:none !important;
}
.search-submit-btn:active{
  opacity:.55;
  transform:none;
  background:transparent !important;
}
.search-submit-btn svg,.src-search-submit svg{display:block;width:20px;height:20px}

/* 聚合切换：胶囊内纯 SVG，无底无框无分隔线 */
.agg-btn,#aggBtn.agg-btn,#aggBtn{
  width:auto!important;height:auto!important;min-width:0!important;
  padding:6px 4px 6px 2px!important;margin:0!important;flex-shrink:0;
  border:none!important;border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:rgba(255,255,255,.72)!important;
  display:inline-flex!important;align-items:center;justify-content:center;
  cursor:pointer;
}
.agg-btn:active,#aggBtn:active{opacity:.5;background:transparent!important}
.agg-btn svg,#aggBtn svg{display:block;width:18px;height:18px;pointer-events:none}


/* 图标按钮 */
.btn-icon{width:40px;height:40px;padding:0;min-width:unset;font-size:17px}


/* ========== 导航模式：dock 底坞（默认） / top 顶栏（wogg） ========== */
html.nav-mode-dock .nav-filter,
html.nav-mode-dock .search-toggle{ display:none !important; }
html.nav-mode-dock 
/* XXX 站源名加粗 */
.src-tab[data-id="xsite"],
.src-tab-top[data-id="xsite"]{
  font-weight:700 !important;
  letter-spacing:0.04em;
}
.bottom-dock{ display:flex; }
/* 与顶栏模式统一高度：同一套 padding / 行高 */
html.nav-mode-dock .navrow{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:0;
  padding:2px 0 10px;
  min-height:0;
  box-sizing:border-box;
}
html.nav-mode-dock .nav-filter{
  display:flex !important;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  margin:0 !important;
  padding:0 !important;
  align-items:center;
  /* 仅本层横滑；overscroll auto 以保留 iOS 橡皮筋回弹 */
  justify-content:flex-start;
  background:transparent;
  border:0;
  box-shadow:none;
  overflow-x:scroll;
  overflow-y:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:auto;
  overscroll-behavior-y:none;
  touch-action:pan-x;
  scroll-padding-inline:max(var(--gap), 10px);
}
html.nav-mode-dock .nav-filter::-webkit-scrollbar{display:none;width:0;height:0}
html.nav-mode-dock .nav-filter .src-toggle{ display:none !important; }
html.nav-mode-dock .nav-filter .chips{
  /* 宽度跟内容走，父级 .nav-filter 负责滚动（禁止嵌套横滑） */
  display:flex;
  flex:0 0 auto;
  width:max-content;
  min-width:max-content;
  max-width:none;
  overflow:visible !important;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  padding:0 max(var(--gap), 10px);
  margin:0;
  min-height:42px;
  height:42px;
  box-sizing:border-box;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
html.nav-mode-dock .nav-filter .chip{
  flex:0 0 auto;
  height:38px;
  min-height:38px;
  padding:0 15px;
  box-sizing:border-box;
  touch-action:pan-x;
}
/* 底坞模式：二级分类 — 容器定宽，仅本层横滑 + iOS 回弹 */
html.nav-mode-dock .navrow > .subchips{
  justify-content:flex-start;
  margin-left:0;
  margin-right:0;
  width:100%;
  max-width:100%;
  min-width:0;
  flex:0 0 100%;
  overflow-x:scroll;
  overflow-y:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:auto;
  overscroll-behavior-y:none;
  touch-action:pan-x;
  scroll-padding-inline:max(var(--gap), 10px);
  padding-left:max(var(--gap), 10px);
  padding-right:max(var(--gap), 10px);
  box-sizing:border-box;
}
html.nav-mode-dock .navrow > .subchips::-webkit-scrollbar{display:none;width:0;height:0}

html.nav-mode-top .bottom-dock{ display:none !important; }
html.nav-mode-top .navrow{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  align-content:flex-start;
  gap:8px;
  /* 与内容区同宽对齐；与底坞模式统一行高 */
  padding:2px 0 10px;
  min-height:0;
  position:relative;
  z-index:30;
  width:100%;
  box-sizing:border-box;
  overflow:visible;
}
html.nav-mode-top .nav-filter .chips{
  min-height:38px;
  height:38px;
  align-items:center;
  box-sizing:border-box;
}
html.nav-mode-top .nav-filter .chip{
  height:38px;
  min-height:38px;
  padding:0 15px;
  box-sizing:border-box;
  font-size:15px;
}
html.nav-mode-top .src-toggle,
html.nav-mode-top .search-toggle{
  width:38px;
  height:38px;
  min-width:38px;
  min-height:38px;
  box-sizing:border-box;
}
/* 顶栏：总图标+分类同一横滑层（站源按钮参与横滑），搜索固定右侧 — 对齐 wogg */
html.nav-mode-top .nav-filter{
  display:flex !important;
  flex:1 1 0%;
  min-width:0;
  max-width:calc(100% - 46px); /* 为右侧搜索按钮预留固定宽度（38+gap），防止被二级菜单挤到中间 */
  order:1;
  align-items:center;
  gap:8px;
  overflow-x:scroll;
  overflow-y:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:auto;
  overscroll-behavior-y:none;
  touch-action:pan-x;
  /* 左侧从站源按钮起算，不额外缩进 */
  margin:0;
  padding:0;
}
html.nav-mode-top .nav-filter::-webkit-scrollbar{display:none}
html.nav-mode-top .nav-filter .src-toggle{
  display:inline-flex !important;
  flex:0 0 auto;
  touch-action:manipulation;
}
html.nav-mode-top .search-toggle{
  display:inline-flex !important;
  flex:0 0 38px;
  width:38px;
  height:38px;
  min-width:38px;
  min-height:38px;
  order:2;
  margin-left:0 !important; /* 紧贴第一行右侧，不随二级菜单换行 */
  align-self:center;
  box-sizing:border-box;
}
/* 顶栏模式：默认隐藏顶栏站源横排 */
html.nav-mode-top .src-row-top{ display:none; }
html.nav-mode-dock .src-row-top{ display:none !important; }

/* 顶栏展开站源：彻底隐藏站源按钮/分类/搜索，只留站源横排 */
html.nav-mode-top .navrow.nav-src-open{
  gap:0 !important;
}
html.nav-mode-top .navrow.nav-src-open > .nav-filter,
html.nav-mode-top .navrow.nav-src-open > .search-toggle{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  position:absolute !important;
  left:-9999px !important;
  width:0 !important;height:0 !important;
  opacity:0 !important;
  overflow:hidden !important;
}
/* 独立站源横排：从左向右展开 */
html.nav-mode-top .navrow.nav-src-open > .src-row-top{
  display:flex !important;
  flex:1 1 auto !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 2px !important;
  gap:8px !important;
  align-items:center;
  justify-content:flex-start;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  height:40px !important;
  max-height:40px !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  cursor:default;
  pointer-events:auto !important;
  opacity:1 !important;
  touch-action:pan-x;
  -webkit-mask-image:none !important;
  mask-image:none !important;
  /* 从左向右展开 */
  transform-origin:left center;
  animation:srcTopExpandX .36s cubic-bezier(0.22,1,0.36,1) both;
}
html.nav-mode-top .navrow.nav-src-open > .src-row-top::-webkit-scrollbar{display:none}
@keyframes srcTopExpandX{
  from{
    opacity:.35;
    clip-path:inset(0 100% 0 0);
    transform:translateX(-12px);
  }
  to{
    opacity:1;
    clip-path:inset(0 0 0 0);
    transform:none;
  }
}
/* 顶栏站源 tab：完全独立，不继承底坞任何样式 */
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top{
  all: unset;
  box-sizing:border-box;
  position:relative;
  white-space:nowrap;
  flex-shrink:0;
  cursor:pointer;
  height:36px;
  min-height:36px;
  padding:0 16px;
  margin:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:inherit;
  font-size:14px;
  font-weight:600;
  letter-spacing:.01em;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.12);
  border:0;
  border-radius:999px;
  line-height:1.2;
  -webkit-tap-highlight-color:transparent;
  transition:background .16s ease, color .16s ease, transform .12s ease;
  /* 依次从左滑入 */
  animation:srcTopTabSlide .34s cubic-bezier(0.22,1,0.36,1) both;
}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(1){animation-delay:.02s}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(2){animation-delay:.05s}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(3){animation-delay:.08s}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(4){animation-delay:.11s}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(5){animation-delay:.14s}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(6){animation-delay:.17s}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(7){animation-delay:.20s}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(8){animation-delay:.23s}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:nth-child(n+9){animation-delay:.26s}
@keyframes srcTopTabSlide{
  from{ opacity:0; transform:translateX(-16px); }
  to{ opacity:1; transform:none; }
}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top.on{
  color:#111;
  font-weight:700;
  background:#fff;
}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top:active{
  transform:scale(.96);
}
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top::before,
html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top::after{
  content:none !important;
  display:none !important;
}
@media (prefers-reduced-motion:reduce){
  html.nav-mode-top .navrow.nav-src-open > .src-row-top,
  html.nav-mode-top .navrow.nav-src-open > .src-row-top > .src-tab-top{ animation:none !important; }
}
html.nav-mode-top .navrow.nav-search-open .nav-filter,
html.nav-mode-top .navrow.nav-search-open .search-toggle,
html.nav-mode-top .navrow.nav-search-open .src-row-top{
  display:none !important;
}

/* 顶栏控件：直接用 wogg 站源/搜索图标按钮 */
.src-toggle,.search-toggle{
  flex-shrink:0;
  display:none;
  align-items:center;
  justify-content:center;
  width:38px;height:38px;
  padding:0;
  border:0;
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.14);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:transform .12s ease, background .12s ease;
  box-sizing:border-box;
}
.src-toggle:active,.search-toggle:active{
  transform:scale(.93);
  background:rgba(255,255,255,.22);
}
.src-toggle svg,.search-toggle svg{display:block;width:18px;height:18px}

/* chips 跟站源按钮一起撑开 scrollWidth，自身不再单独滚动 */
html.nav-mode-top .nav-filter .chips{
  display:flex;
  flex:0 0 auto;
  width:max-content;
  min-width:max-content;
  overflow:visible !important;
  gap:8px;
  align-items:center;
  padding:0 4px;
  margin:0;
  /* 关键：去掉左右渐变遮罩，否则第一个选中白胶囊左侧会被“晕染”半透明 */
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
html.nav-mode-top .nav-filter .chip{
  flex:0 0 auto;
  touch-action:pan-x;
  /* 选中白底要实心干净，不受父级透明度影响 */
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
html.nav-mode-top .nav-filter .chip.active{
  color:#111 !important;
  background:#fff !important;
  font-weight:700 !important;
  opacity:1 !important;
  filter:none !important;
  -webkit-filter:none !important;
  box-shadow:none !important;
}

/* ========== 站源 / 分类导航区 ========== */

/* navrow：顶栏固定（不随 #content 滚动），只包裹 chips 分类行 */
.navrow{
  position:relative;
  z-index:30;
  display:block;
  flex-shrink:0 !important;
  /* 默认与顶栏模式一致，避免模式切换时高度跳动 */
  padding:2px 0 10px;
  transition:filter .25s ease,opacity .25s ease;
}
.navrow.blurred .src-row{
  filter:blur(8px);
  opacity:.4;
  pointer-events:none;
}
.navrow.blurred .chips{
  filter:blur(8px);
  opacity:.4;
  pointer-events:none;
}

/* ===== 底部联体左半：站源选择器（收起只显示当前站，点击展开）===== */
.src-row{
  position:relative;
  display:flex;
  gap:0;
  overflow:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  pointer-events:auto;
  /* 联体左半：无独立外壳，背景/边框/圆角全由 .bottom-dock 承担 */
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:0;
  justify-content:center;
  align-items:center;
  /* 宽度动画：收起→展开 */
  max-width:190px;
  height:62px;
  transition:
    max-width .38s cubic-bezier(0.34,1.2,0.64,1),
    opacity .2s ease;
  cursor:pointer;
}
/* 展开态 */
.src-row.expanded{
  max-width:calc(100vw - 80px);
  overflow-x:auto;
  cursor:default;
  padding:0 10px;
  gap:6px;
  justify-content:flex-start;
  align-items:center;
  touch-action:pan-x;
}
.src-row::-webkit-scrollbar{display:none}

/* search-focused src-row: handled by bottom-dock opacity */

/* 站源 tab 胶囊 — 文字/图标统一纯白，保证在玻璃坞上可读 */
.src-tab{
  position:relative;
  white-space:nowrap;
  flex-shrink:0;
  cursor:pointer;
  font-size:13px;
  font-weight:600;
  color:rgba(0,0,0,0.52);
  padding:7px 18px;
  background:transparent;
  border:0 solid transparent;
  border-radius:0;
  box-shadow:none;
  transition:all .2s cubic-bezier(0.2,0,0.2,1);
  /* 收起时：隐藏非选中项，彻底脱离 flex 空间 */
  opacity:0;
  pointer-events:none;
  max-width:0;
  width:0;
  padding-left:0;
  padding-right:0;
  margin:0;
  border-width:0;
  overflow:hidden;
}
/* 收起时只显示选中项 */
.src-tab.on{
  color:rgba(0,0,0,0.88);
  font-weight:800;
  opacity:1;
  pointer-events:auto;
  max-width:120px;
  width:auto;
  min-width:0;
  height:62px;
  padding:0 18px;
  margin:0;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  background:transparent !important;
  border:0 !important;
  border-color:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  line-height:1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  /* 收起态隐藏站名文字，只显示图标 */
  font-size:0;
}
/* 收起态图标：纯白网格 */
.src-tab.on::before{
  content:'';
  display:inline-block;
  flex-shrink:0;
  width:27px;
  height:27px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23707070' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='4.5' width='6' height='6' rx='1.6'/%3E%3Crect x='13.5' y='4.5' width='6' height='6' rx='1.6'/%3E%3Crect x='4.5' y='13.5' width='6' height='6' rx='1.6'/%3E%3Crect x='13.5' y='13.5' width='6' height='6' rx='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  filter:none;
}
/* 展开态才给内层胶囊自己的样式 */
.src-row.expanded .src-tab.on{
  width:auto;
  padding:0 16px;
  height:38px;
  min-height:38px;
  max-height:38px;
  border-radius:999px;
  background:#fff !important;
  border:none !important;
  border-color:transparent !important;
  box-shadow:0 1px 3px rgba(0,0,0,0.1) !important;
  color:#111 !important;
  font-size:13px;
  font-weight:600;
  line-height:1;
  letter-spacing:0.01em;
  gap:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
/* 展开态隐藏图标 */
.src-row.expanded .src-tab.on::before{
  display:none;
}
.src-row.expanded .src-tab{
  border-radius:999px;
  width:auto;
  padding:0 16px;
  height:38px;
  min-height:38px;
  max-height:38px;
  background:transparent;
  border:0;
  border-color:transparent;
  box-shadow:none;
  color:#000;
  font-size:14px;
  font-weight:600;
  line-height:1;
  letter-spacing:0.01em;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  opacity:1;
  pointer-events:auto;
  max-width:180px;
}
/* 展开态非选中：纯黑字，白玻璃上清晰可读 */
.src-row.expanded .src-tab:not(.on){
  color:#000;
  background:transparent;
  border:none;
  box-shadow:none;
  opacity:0.72;
}
.src-tab:active{opacity:.70 !important;transform:scale(.94)}

/* 收起时的点击提示：轻微脉冲 */
@keyframes srcPulse{
  0%{box-shadow:0 1px 0 rgba(255,255,255,0.18) inset,0 -1px 0 rgba(255,255,255,0.06) inset,0 20px 56px rgba(0,0,0,0.52),0 6px 20px rgba(0,0,0,0.32)}
  50%{box-shadow:0 1px 0 rgba(255,255,255,0.18) inset,0 -1px 0 rgba(255,255,255,0.06) inset,0 20px 56px rgba(0,0,0,0.52),0 6px 20px rgba(0,0,0,0.32),0 0 0 4px rgba(var(--accent-rgb),0.18)}
  100%{box-shadow:0 1px 0 rgba(255,255,255,0.18) inset,0 -1px 0 rgba(255,255,255,0.06) inset,0 20px 56px rgba(0,0,0,0.52),0 6px 20px rgba(0,0,0,0.32)}
}

/* 分隔线隐藏 */
.src-sep{display:none}

/* ===== 底部联体胶囊容器：站源（左）+ 设置 + 搜索 ===== */
/* 底坞：扁平液态玻璃（轻高光） */
/* 底坞：中性磨砂胶囊（Control Center 风格，无彩色叠层） */
.bottom-dock{
  position:fixed;
  bottom:calc(var(--safe-bottom) + 12px);
  left:50%;
  transform:translateX(-50%) translateZ(0);
  z-index:35;
  display:flex;
  align-items:center;
  gap:0;
  pointer-events:none;
  /* iOS 白底毛玻璃：半透白 + 高饱和模糊，接近系统导航/控制中心浅色胶囊 */
  background:
    linear-gradient(180deg, rgba(255,255,255,0.82) 0%, rgba(255,255,255,0.68) 100%);
  border:0.5px solid rgba(255,255,255,0.55);
  border-radius:999px;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.75) inset,
    0 -0.5px 0 rgba(0,0,0,0.04) inset,
    0 8px 28px rgba(0,0,0,0.18),
    0 2px 8px rgba(0,0,0,0.08);
  -webkit-backdrop-filter:blur(40px) saturate(180%) brightness(1.08);
  backdrop-filter:blur(40px) saturate(180%) brightness(1.08);
  height:62px;
  min-height:62px;
  padding:0 6px;
  overflow:hidden;
  isolation:isolate;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  transition:
    max-width .38s cubic-bezier(0.34,1.2,0.64,1),
    background .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}
.bottom-dock.expanded{
  background:
    linear-gradient(180deg, rgba(255,255,255,0.88) 0%, rgba(255,255,255,0.74) 100%);
  border-color:rgba(255,255,255,0.62);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.8) inset,
    0 -0.5px 0 rgba(0,0,0,0.05) inset,
    0 10px 32px rgba(0,0,0,0.2),
    0 3px 10px rgba(0,0,0,0.1);
  -webkit-backdrop-filter:blur(48px) saturate(190%) brightness(1.1);
  backdrop-filter:blur(48px) saturate(190%) brightness(1.1);
}

/* 分隔线 */
.dock-sep{
  width:1px;
  height:18px;
  background:rgba(0,0,0,0.12);
  flex-shrink:0;
  pointer-events:none;
  border-radius:1px;
}

/* ===== 搜索 ===== */
.search-pill{
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:66px;height:62px;
  border-radius:0;
  background:transparent;
  border:0;
  cursor:pointer;
  transition:background .15s ease, opacity .2s ease, max-width .38s cubic-bezier(0.34,1.2,0.64,1), width .38s cubic-bezier(0.34,1.2,0.64,1), padding .28s ease;
  flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
}
.search-pill:active{background:rgba(0,0,0,0.06)}
/* ===== 设置 ===== */
.settings-pill{
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:62px;height:62px;
  border-radius:0;
  background:transparent;
  border:0;
  cursor:pointer;
  transition:background .15s ease, opacity .2s ease, max-width .38s cubic-bezier(0.34,1.2,0.64,1), padding .28s ease, width .38s cubic-bezier(0.34,1.2,0.64,1);
  flex-shrink:0;
  overflow:visible;
  -webkit-tap-highlight-color:transparent;
}
.settings-pill:active{background:rgba(0,0,0,0.06)}
.settings-pill-icon{
  background:transparent;border:0;padding:0;
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  color:rgba(0,0,0,0.52);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.settings-pill-icon svg{
  width:27px;height:27px;
  color:rgba(0,0,0,0.52);
  display:block;
  shape-rendering:geometricPrecision;
  transform:translateZ(0);
}

/* 站源展开：隐藏搜索/设置/最近观看，只留站源列表 */
.bottom-dock.expanded .search-pill,
.bottom-dock.expanded .settings-pill,
.bottom-dock.expanded .history-pill,
.bottom-dock.expanded #dockSep,
.bottom-dock.expanded #dockSep2,
.bottom-dock.expanded #dockSepHist{
  opacity:0;
  pointer-events:none;
  max-width:0;
  width:0;
  padding:0;
  overflow:hidden;
  border:none;
}
.bottom-dock.expanded .dock-sep{
  opacity:0;
  width:0;
  max-width:0;
}
/* 最近观看胶囊（底坞模式） */
.history-pill{
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:62px;height:62px;
  border-radius:0;
  background:transparent;
  border:0;
  cursor:pointer;
  transition:background .15s ease, opacity .2s ease, max-width .38s cubic-bezier(0.34,1.2,0.64,1), width .38s cubic-bezier(0.34,1.2,0.64,1), padding .28s ease;
  flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
}
.history-pill:active{background:rgba(0,0,0,0.06)}
.history-pill-icon{
  background:transparent;border:0;padding:0;
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  color:rgba(0,0,0,0.52);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.history-pill-icon svg{
  width:27px;height:27px;
  color:rgba(0,0,0,0.52);
  display:block;
  shape-rendering:geometricPrecision;
  transform:translateZ(0);
}
.history-pill.on .history-pill-icon,
.history-pill.on .history-pill-icon svg{
  color:var(--accent);
}
.search-pill-icon{
  background:transparent;border:0;padding:0;
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  color:rgba(0,0,0,0.52);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.search-pill-icon svg{
  width:27px;height:27px;
  color:rgba(0,0,0,0.52);
  display:block;
  shape-rendering:geometricPrecision;
  transform:translateZ(0);
}



/* 底栏搜索框 */
.src-search-inner{
  flex:1;min-width:0;display:flex;align-items:center;gap:8px;
  height:42px;padding:0 10px 0 16px;
  background:rgba(118,118,128,.28);
  border:none;
  border-radius:999px;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.src-search-inner:focus-within{
  background:rgba(118,118,128,.38);
  box-shadow:none;
}
.src-search-inner input{
  flex:1;min-width:0;background:transparent;border:0;outline:0;
  color:#fff;font-size:15px;
}
.src-search-inner input::placeholder{color:rgba(255,255,255,0.38)}
.src-cancel-btn{
  flex-shrink:0;
  background:transparent;border:0;
  color:rgba(255,255,255,0.65);
  font-size:13px;font-weight:600;
  padding:6px 4px 6px 8px;
  cursor:pointer;white-space:nowrap;
}

/* 搜索提交按钮 */
.src-search-submit{
  width:auto;height:auto;min-width:0;padding:6px;flex-shrink:0;
  border:none;border-radius:0;cursor:pointer;
  background:transparent !important;
  color:rgba(255,255,255,.72);
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:none !important;
}
.src-search-submit:active{opacity:.55;background:transparent !important}

/* 分类 chips：内容层，不单独横滑（由 .nav-filter 统一滚动） */
.chips{
  display:flex;
  align-items:center;
  gap:8px;
  overflow:visible;
  scrollbar-width:none;
  padding:4px max(var(--gap), 2px) 6px;
  margin:0 calc(-1 * var(--gap));
  scroll-padding-inline:var(--gap);
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.chips::-webkit-scrollbar{display:none}

/* 搜索中：内容模糊 */
#content{transition:filter .25s ease,opacity .25s ease}
#content.searching{filter:blur(6px);opacity:.5;pointer-events:none}
.app{transition:filter .28s ease}
.app.searching .src-row,
.app.searching #status,
.app.searching #content{filter:blur(8px)}

.chip{
  white-space:nowrap;
  cursor:pointer;
  flex-shrink:0;
  font-size:16px;
  font-weight:500;
  letter-spacing:.15px;
  line-height:1.2;
  color:rgba(255,255,255,.82);
  background:rgba(255,255,255,.12);
  border:none;
  border-radius:999px;
  padding:8px 15px;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  /* 去掉 transform 过渡，避免横滑时抢合成层、破坏惯性 */
  transition:background .22s ease,color .2s ease,opacity .15s ease;
  touch-action:pan-x;
  -webkit-user-select:none;
  user-select:none;
}
.chip.active{
  color:#111;
  font-weight:700;
  background:#fff;
  border:none;
  border-radius:999px;
  box-shadow:none;
}
.chip:active{ opacity:.72; }
/* 二级分类行：定宽容器横滑 + iOS 惯性/回弹 */
.subchips{
  display:flex;gap:8px;align-items:center;
  overflow-x:scroll;overflow-y:hidden;
  flex:0 0 auto;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  min-height:36px;
  height:auto;
  padding:2px 2px 6px;
  margin:0;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:auto;
  overscroll-behavior-y:none;
  touch-action:pan-x;
  flex-shrink:0 !important;
}
.subchips::-webkit-scrollbar{display:none}
.subchips[hidden]{display:none !important}
.subchips .chip{
  height:32px;min-height:32px;padding:0 12px;font-size:13px;opacity:.78;
  flex:0 0 auto;
}
.subchips .chip.active{opacity:1}
/* navrow 内二级行：独占一整行，排在一级分类底部（order 大于搜索，确保搜索留在第一行右侧） */
.navrow > .subchips{
  order:10;
  flex:0 0 100%;
  flex-basis:100%;
  width:100%;
  max-width:100%;
  margin-top:2px; /* 与一级菜单间距 +2px */
  padding-top:4px;
}
/* 顶栏站源横排：与一级同级时占满一行 */
html.nav-mode-top .src-row-top{
  order:1;
}
/* 顶栏展开站源时隐藏二级分类，避免挤压站源横排 */
html.nav-mode-top .navrow.nav-src-open > .subchips,
html.nav-mode-top .navrow.nav-search-open > .subchips{
  display:none !important;
}
/* 一级+二级同栏：允许换行，二级独占下一行，互不挤压 */
html.nav-mode-dock .navrow,
html.nav-mode-top .navrow{
  flex-wrap:wrap;
  align-content:flex-start;
}



.status{display:none}

/* ========== 卡片网格 ========== */
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px;padding-top:2px}

/* MissAV 横版封面：竖屏 2 列，横屏 4 列起自适应 */
.grid.grid-land{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 10px;
}
.grid.grid-land .poster{
  aspect-ratio:16/9;
}
.grid.grid-land .poster img{
  object-fit:cover;
  object-position:center top;
}
@media(orientation:landscape){
  .grid.grid-land{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 10px}
}
@media(orientation:landscape) and (min-width:900px){
  .grid.grid-land{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(orientation:landscape) and (min-width:1200px){
  .grid.grid-land{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(orientation:portrait) and (min-width:600px){
  .grid.grid-land{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* 手机竖屏 3 列 */
@media(orientation:portrait){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}}
/* 平板竖屏：4 列 */
@media(orientation:portrait) and (min-width:600px){
  .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 12px}
}
/* 大平板竖屏：5 列 */
@media(orientation:portrait) and (min-width:900px){
  .grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 14px}
}
/* 手机横屏：5 列（7 列卡片过小） */
@media(orientation:landscape){.grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px 12px}}
/* 平板横屏：7 列 */
@media(orientation:landscape) and (min-width:900px){
  .grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:18px 14px}
}
/* 大屏横屏：8 列 */
@media(orientation:landscape) and (min-width:1200px){
  .grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:18px 14px}
}
/* 左右滑动切换分类：新分类网格淡入位移 */
@keyframes catSlideFromR{from{opacity:.25;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes catSlideFromL{from{opacity:.25;transform:translateX(-28px)}to{opacity:1;transform:none}}
.grid.slide-l{animation:catSlideFromR .24s cubic-bezier(.2,0,.2,1)}
.grid.slide-r{animation:catSlideFromL .24s cubic-bezier(.2,0,.2,1)}
/* 滑到边界时的轻微回弹提示 */
@keyframes catEdgeBounceL{0%{transform:none}40%{transform:translateX(-14px)}100%{transform:none}}
@keyframes catEdgeBounceR{0%{transform:none}40%{transform:translateX(14px)}100%{transform:none}}
#content.edge-l{animation:catEdgeBounceL .26s ease}
#content.edge-r{animation:catEdgeBounceR .26s ease}

/* ===== Apple TV 风格卡片：海报为主、轻阴影、标题在图下 ===== */
.card{
  background:transparent;
  border:0;
  border-radius:0;
  overflow:visible;
  cursor:pointer;
  position:relative;
  box-shadow:none;
  isolation:auto;
  transition:transform .32s var(--ease-spring);
}
.card::before{display:none !important;content:none !important}
.card:active{
  transform:scale(0.97);
  transition-duration:.12s;
  transition-timing-function:var(--ease-press);
  will-change:transform;   /* 只在按下瞬间提层，避免长列表每张卡常驻合成层导致滚动掉帧 */
}
/* 触摸修复：禁用系统长按选择/图片菜单，避免和"长按收藏"手势抢触摸导致卡死 */
.card,.card *{
  -webkit-user-select:none;-moz-user-select:none;user-select:none;
  -webkit-touch-callout:none;
}
.card img{-webkit-user-drag:none;user-drag:none}

/* 海报：圆角 + 柔和投影（Apple TV 焦点卡感觉） */
.poster{
  aspect-ratio:2/3;
  position:relative;
  overflow:hidden;
  background:#1c1c1e;
  border-radius:var(--radius-md);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.06) inset,
    0 2px 6px rgba(0,0,0,.22),
    0 10px 28px rgba(0,0,0,.32);
  transition:transform .36s var(--ease-spring), box-shadow .36s var(--ease-out);
}
.card:active .poster{
  transform:scale(0.985);
  box-shadow:
    0 1px 3px rgba(0,0,0,.25),
    0 4px 14px rgba(0,0,0,.3);
}
.poster img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .55s var(--ease-out), opacity .35s var(--ease-out);
  display:block;position:absolute;inset:0;z-index:(typeof p._playIndex==="number"?p._playIndex:0);
}
/* 底部极轻渐变，方便角标可读，不抢海报 */
.poster::after{
  content:'';
  position:absolute;left:0;right:0;bottom:0;height:36%;
  background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.45) 100%);
  pointer-events:none;z-index:1;
}
.noimg{
  height:100%;display:grid;place-items:center;
  color:rgba(255,255,255,.55);font-size:14px;font-weight:600;letter-spacing:.3px;
  text-align:center;line-height:1.45;padding:0 12px;
  background:
    radial-gradient(ellipse 80% 60% at 30% 20%, rgba(10,132,255,.35) 0%, transparent 60%),
    radial-gradient(ellipse 70% 50% at 80% 80%, rgba(191,90,242,.28) 0%, transparent 55%),
    linear-gradient(160deg,#2A2A36 0%,#1A1A24 100%);
  position:absolute;inset:0;z-index:0;
}

/* 状态角标：右上角小胶囊 — Apple 系统色玻璃 */
.status-badge{
  position:absolute;top:8px;right:8px;z-index:3;
  max-width:92%;
  padding:4px 9px;border-radius:999px;
  font-size:10px;font-weight:700;letter-spacing:.15px;line-height:1.25;
  color:#fff;
  background:linear-gradient(135deg, rgba(255,122,69,.88) 0%, rgba(255,159,10,.82) 100%);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 2px 10px rgba(255,122,69,.35);
  white-space:nowrap;overflow:visible;text-overflow:clip;
  -webkit-backdrop-filter:blur(16px) saturate(1.5);
  backdrop-filter:blur(16px) saturate(1.5);
}

/* 角标 */
.source-badge{
  position:absolute;bottom:8px;right:8px;z-index:3;
  padding:3px 8px;border-radius:999px;font-size:10px;font-weight:700;
  background:rgba(0,0,0,.5);
  color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);
  border:1px solid rgba(255,255,255,.1);
  display:none;
  /* 不截断省略：「更至12集」完整显示 */
  max-width:none;white-space:nowrap;overflow:visible;text-overflow:clip;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.source-badge.show{display:block}
.badge{
  position:absolute;left:8px;bottom:8px;z-index:3;
  padding:3px 8px;border-radius:999px;
  background:linear-gradient(135deg, rgba(10,132,255,.75) 0%, rgba(94,92,230,.7) 100%);
  font-size:10px;font-weight:700;
  backdrop-filter:blur(12px) saturate(1.4);
  -webkit-backdrop-filter:blur(12px) saturate(1.4);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 2px 8px rgba(10,132,255,.28);
  color:#fff;
}

/* 标题区：海报下方，干净排版（Apple TV 列表） */
.meta{
  padding:9px 2px 2px;
  position:relative;z-index:1;
  background:transparent;
  border:0;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.name{
  font-weight:600;
  font-size:13px;
  letter-spacing:-.01em;
  line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-shadow:none;
  color:rgba(255,255,255,.96);
}
.srcline{
  margin-top:3px;
  color:rgba(100,210,255,.55);
  font-size:11px;
  font-weight:500;
  line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.remark{margin-top:3px;color:rgba(255,255,255,.36);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 桌面悬停：轻微上浮 + 更深阴影（接近 tvOS focus） */
@media (hover:hover){
  .card:hover .poster{
    transform:translateY(-4px) scale(1.02);
    box-shadow:
      0 4px 8px rgba(0,0,0,.25),
      0 16px 36px rgba(0,0,0,.4),
      0 24px 56px rgba(0,0,0,.2);
  }
  .card:hover .poster img{transform:scale(1.03)}
}

/* ========== 详情弹层：沉浸式全屏（参考 Eclipse）========== */
.sheet{
  position:fixed;inset:0;z-index:40;
  display:none;
  background:#0d1117;
  overflow-y:scroll;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  /* 打开后必须 transform:none，否则子元素 backdrop-filter 无法糊住背后海报 */
  transform:none;
  scrollbar-width:none;        /* Firefox */
  -ms-overflow-style:none;     /* 旧版 Edge/IE */
}
.sheet::-webkit-scrollbar{display:none}  /* Chrome/Safari/WebView */
.sheet.active{
  display:block;
  transform:none;
  animation:sheetSlideIn .42s var(--ease-out) both;
}
@keyframes sheetSlideIn{
  from{transform:translateX(100%);opacity:.6}
  to{transform:none;opacity:1}
}

/* 独立海报大图区：不再做沉浸式背景叠加，海报清晰完整展示 */
/* 竖版海报：按 2:3 比例展示；横版海报由 JS 检测后切换为 .landscape，按 16:9 展示 */
.det-hero{
  position:relative;
  width:100%;
  aspect-ratio:2/3;
  max-height:78vh;
  z-index:0;overflow:hidden;
  background:linear-gradient(160deg, #0f1923 0%, #1a2535 50%, #0d1117 100%);
}
.det-hero.landscape{aspect-ratio:auto}
/* ===== Emby 风格全屏海报背景（独立于 sheet，fixed 不受 sheet transform 影响）===== */
.det-hero-bg{
  position:fixed;inset:0;z-index:38;          /* 低于 sheet(40)，详情打开后透过透明的 sheet 透出 */
  background-size:cover;background-position:center 12%;
  background-color:#0d1117;                   /* 深色兜底：海报图加载前也不会透出主页 */
  opacity:0;pointer-events:none;
  transition:opacity .4s ease;
  will-change:opacity;
}
.det-hero-bg.show{opacity:1}
/* 轮播图层：两层交替 crossfade；淡出时露出的是 detHeroBg 深色底而非主页 */
.det-hero-bg-img{
  position:absolute;inset:0;
  background-size:cover;background-position:center 12%;
  opacity:0;transition:opacity .55s ease;
  will-change:opacity;
}
/* 渐变压暗层：大幅调淡——资源已收进带玻璃背景的折叠条，海报得以大部分清晰露出 */
.det-hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(13,17,23,.12) 0%,
    rgba(13,17,23,0) 32%,
    rgba(13,17,23,0) 60%,
    rgba(13,17,23,.28) 82%,
    rgba(13,17,23,.5) 100%);
}
/* 横版沉浸式：sheet 背景透明（透出后面的全屏海报），用 flex 纵向排让内容沉底 */
.sheet.landscape-mode{background:transparent!important;display:flex;flex-direction:column}
.sheet.landscape-mode.active{transform:none!important}
/* 海报区撑开占据上方所有空间，把播放按钮挤到底沿，紧接下方标题与折叠条 */
.sheet.landscape-mode .det-hero{
  flex:1 1 auto;height:auto;min-height:26vh;
  background:transparent;aspect-ratio:auto;max-height:none;
  overflow:visible;                /* 让播放按钮的呼吸光晕不被裁切 */
}
.sheet.landscape-mode .det-hero-img{display:none}     /* 用全屏 detHeroBg 背景代替 */
.sheet.landscape-mode .det-hero::after{display:none}
/* 播放按钮落在海报底沿正中，间距收紧让底部内容组更紧凑 */
.sheet.landscape-mode .det-hero-cta{align-items:flex-end;justify-content:center;padding-bottom:12px}
/* 沉浸式详情页隐藏吸顶标题栏，避免滑动时顶部标题栏闪现、破坏沉浸感 */
.sheet.landscape-mode .det-topbar{display:none!important}
/* 海报大图：完整清晰展示，不裁切关键内容，默认透明，加载成功后淡入 */
.det-hero-img{
  position:absolute;inset:0;z-index:0;
  width:100%;height:100%;object-fit:cover;object-position:center center;
  opacity:0;transition:opacity .35s ease;
}
.det-hero-img.loaded{opacity:1}
/* 底部轻渐变，仅用于与下方内容衔接，不遮挡海报画面主体 */
.det-hero::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:48px;z-index:1;
  background:linear-gradient(180deg, rgba(13,17,23,0) 0%, rgba(13,17,23,.55) 100%);
}
/* 播放按钮贴海报底，整体更靠下 */
.det-hero-cta{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  display:flex;justify-content:center;align-items:flex-end;
  padding:0 14px 4px;
  pointer-events:none;
}
.det-hero-cta .det-play-btn{pointer-events:auto}

/* 吸顶导航栏：滚动后出现 iOS 大标题栏式磨砂 */
.det-topbar{
  position:fixed;top:0;left:0;right:0;z-index:10;
  height:calc(52px + var(--safe-top));
  padding-top:var(--safe-top);
  display:flex;align-items:center;gap:10px;
  padding-left:18px;padding-right:18px;
  background:rgba(13,17,23,0);
  border-bottom:1px solid rgba(255,255,255,0);
  backdrop-filter:blur(0px);
  -webkit-backdrop-filter:blur(0px);
  transition:background .28s ease,border-color .28s ease,backdrop-filter .28s ease,-webkit-backdrop-filter .28s ease;
  pointer-events:none;
}
.det-topbar.scrolled{
  background:
    linear-gradient(180deg, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.03) 100%),
    rgba(13,17,23,0.55);
  border-bottom:1px solid rgba(255,255,255,0.10);
  backdrop-filter:blur(28px) saturate(180%);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
}
.det-topbar-title{
  flex:1;min-width:0;
  font-size:16px;font-weight:700;color:#fff;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  opacity:0;transform:translateY(5px);
  transition:opacity .18s,transform .18s;
}
.det-topbar.scrolled .det-topbar-title{opacity:1;transform:translateY(0)}

/* 主内容区：海报大图现为常规流内元素，内容区紧随其后，顶部只需让出吸顶栏高度 */
.panel{
  position:relative;z-index:2;
  padding:0 18px calc(var(--safe-bottom) + 56px);
  box-sizing:border-box;
}
/* 横版沉浸式：资源区自然高度，作为 flex 项紧贴撑开的海报下方，整组沉到屏幕底部 */
.sheet.landscape-mode .panel{
  margin-top:0!important;
  background:transparent!important;
  position:relative;z-index:2;
  flex:0 0 auto;
}
/* ===== 片名：优先 TMDB 徽标 logo，失败回落文字（对齐 wogg） ===== */
.det-title-wrap{
  display:flex;align-items:center;justify-content:center;
  margin:4px 0 6px;min-height:40px;
}
.det-logo{
  display:block;max-width:min(72vw,340px);max-height:64px;
  width:auto;height:auto;object-fit:contain;
  filter:drop-shadow(0 2px 16px rgba(0,0,0,.55));
}
.det-logo[hidden]{display:none !important}
.det-bigtitle{
  font-size:28px;font-weight:var(--fw-display);color:#fff;line-height:1.15;
  letter-spacing:.01em;margin:0;text-align:center;
  text-shadow:0 2px 24px rgba(0,0,0,.6),0 1px 4px rgba(0,0,0,.5);
}
.det-title-wrap.has-logo .det-bigtitle{display:none}
.sheet.landscape-mode .det-bigtitle{font-size:34px}
.sheet.landscape-mode .det-logo{max-height:72px;max-width:min(60vw,380px)}
.sheet.landscape-mode .det-pills{justify-content:center}
/* 兼容旧 class */
.det-tmdb-logo{display:flex;justify-content:center;align-items:center;margin:2px 0 10px;min-height:40px}
.det-tmdb-logo img,.det-title-logo{
  max-height:64px;max-width:min(72vw,340px);width:auto;height:auto;display:block;object-fit:contain;
  filter:drop-shadow(0 2px 16px rgba(0,0,0,.55));
}
.sheet.landscape-mode .det-tmdb-logo img,.sheet.landscape-mode .det-title-logo{max-height:72px}
/* meta pills 位置：标题与类型之间 */
.det-pills{
  display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;
  justify-content:center;
}
.det-pill{
  padding:5px 11px;border-radius:999px;
  color:rgba(255,255,255,.88);
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  font-size:12px;line-height:1.4;font-weight:600;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.det-pill.accent{
  color:#fff;
  border-color:rgba(var(--accent-rgb),.45);
  background:rgba(var(--accent-rgb),.28);
  font-weight:700;
}
/* 影视类型标签：标题下方居中显示 */
.det-genres{
  text-align:center;color:rgba(255,255,255,.72);
  font-size:13px;font-weight:600;letter-spacing:.04em;
  margin:0 0 6px;text-shadow:none;
}
.det-genres:empty{display:none}
/* ===== 资源条：固定贴视口底；收起仅三角，展开完整面板 ===== */
.det-collapse-row{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  z-index:60 !important;
  display:flex !important;
  justify-content:center;
  align-items:flex-end;
  width:100% !important;
  margin:0 !important;
  padding:0 15px !important; /* 手机竖屏左右各 15px */
  padding-bottom:max(var(--safe-bottom), env(safe-area-inset-bottom, 0px), 6px) !important;
  box-sizing:border-box;
  pointer-events:none;
  transform:none !important;
  filter:none !important;
}
.det-collapse{
  pointer-events:auto;
  margin:0 auto;
  overflow:hidden;
  display:block;
  min-width:0;
  transition:background .2s ease, box-shadow .2s ease, border-radius .28s ease, max-width .28s ease, width .28s ease;
}
/* 收起：裸三角 + 轻呼吸，不套玻璃胶囊 */
.det-collapse:not(.open){
  width:auto !important;
  max-width:none !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  border-radius:0 !important;
  padding:0;
}
/* 展开：贴底宽面板 */
.det-collapse.open{
  width:100% !important;
  max-width:min(720px, calc(100% - 0px)) !important;
  max-height:min(62vh, calc(100dvh - 24px));
  background:rgba(18,22,30,.42);
  backdrop-filter:blur(14px) saturate(1.15);
  -webkit-backdrop-filter:blur(14px) saturate(1.15);
  border:none !important;
  outline:none !important;
  box-shadow:none !important;
  border-radius:var(--radius-lg) !important;
  display:flex;
  flex-direction:column;
  margin-bottom:4px;
  padding:0;
}
@media (orientation: landscape){
  .det-collapse-row{
    /* 左右各留约 100px */
    padding-left:max(100px, env(safe-area-inset-left, 0px)) !important;
    padding-right:max(100px, env(safe-area-inset-right, 0px)) !important;
  }
  .det-collapse.open{
    width:100% !important;
    max-width:calc(100vw - 200px) !important; /* 左右各 100px */
    max-height:min(78vh, calc(100dvh - 16px));
    border-radius:var(--radius-lg) !important;
  }
}
/* 窄横屏（手机）：左右各 24px，避免内容过窄 */
@media (orientation: landscape) and (max-width: 700px){
  .det-collapse-row{
    padding-left:max(24px, env(safe-area-inset-left, 0px)) !important;
    padding-right:max(24px, env(safe-area-inset-right, 0px)) !important;
  }
  .det-collapse.open{
    max-width:calc(100vw - 48px) !important;
  }
}
/* 展开资源时隐藏标题/播放/徽标：瞬时显隐，不做过渡（过渡会在部分 WebView 收起时闪一下） */
.det-title-wrap,
.det-genres,
.det-pills,
.det-hero-cta,
.det-tmdb-logo,
#detLogo,
#detBigTitle,
.det-play-btn{
  transition:none !important;
}
#sheet.res-open .det-title-wrap,
#sheet.res-open .det-genres,
#sheet.res-open .det-pills,
#sheet.res-open .det-hero-cta,
#sheet.res-open .det-tmdb-logo,
#sheet.res-open #detLogo,
#sheet.res-open #detBigTitle,
#sheet.res-open .det-play-btn{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
/* 入场动画只在首次打开详情时播一次，res-open 切换绝不重播 */
#sheet.sheet-anim-done .panel,
#sheet.sheet-anim-done .det-collapse,
#sheet.sheet-anim-done .det-tmdb-logo,
#sheet.sheet-anim-done #detLogo,
#sheet.sheet-anim-done .det-play-btn,
#sheet.sheet-anim-done .det-bigtitle{
  animation:none !important;
}
/* 避免 sheet 动画 transform 把 fixed 困住 */
#sheet.active{
  animation:none !important;
  transform:none !important;
}

/* 真磨砂增强：有海报底图时叠加模糊海报层（WebView 无 backdrop-filter 也能雾面） */
.det-collapse.open::before{
  content:"";
  position:absolute;
  inset:-40px;
  z-index:0;
  background-image:var(--det-frost-url, none);
  background-size:cover;
  background-position:center 35%;
  filter:blur(24px) saturate(1.05) brightness(0.95);
  transform:scale(1.08);
  opacity:.42;
  pointer-events:none;
}
.det-collapse.open::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:inherit;
  background:linear-gradient(160deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.02) 50%, rgba(0,0,0,.06) 100%);
  pointer-events:none;
}
.det-collapse.open{ position:relative; isolation:isolate; overflow:hidden; }
.det-collapse.open > *{ position:relative; z-index:1; }
.det-collapse:not(.open)::before,
.det-collapse:not(.open)::after{ display:none !important; }

.det-collapse-head{
  display:flex;align-items:center;gap:10px;justify-content:center;
  padding:6px 8px;cursor:pointer;user-select:none;
  font-size:15px;font-weight:var(--fw-strong);color:#fff;
  min-height:32px;
  position:relative;
  flex-shrink:0;
}
.det-collapse.open .det-collapse-head{
  padding:10px 14px;
  min-height:40px;
}
/* 收起：只露三角，隐藏 tabs / 设置 */
.det-collapse:not(.open) .det-res-tabs,
.det-collapse:not(.open) .pan-cfg-btn{
  display:none !important;
}
.det-collapse:not(.open) .det-collapse-head{
  justify-content:center;
  padding:4px;
  min-height:28px;
}
.det-collapse-arrow{
  display:inline-flex;align-items:center;justify-content:center;
  opacity:.9;line-height:1;
  color:rgba(255,255,255,.95);
  filter:drop-shadow(0 1px 6px rgba(0,0,0,.5));
  transition:transform .28s var(--ease-spring), width .2s ease, height .2s ease;
}
.det-collapse-arrow svg{
  display:block;
  stroke:currentColor;fill:none;
  transition:width .2s ease, height .2s ease;
}
/* 收起（箭头朝上、资源未弹出）：用原来的大尺寸 */
.det-collapse:not(.open) .det-collapse-arrow{
  width:44px;height:28px;
  animation:detArrowBreath 2.2s ease-in-out infinite;
}
.det-collapse:not(.open) .det-collapse-arrow svg{
  width:28px;height:20px;
}
/* 展开（箭头朝下、资源已弹出）：用缩小尺寸 */
.det-collapse.open .det-collapse-arrow{
  width:28px;height:20px;
  animation:none;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.45));
}
.det-collapse.open .det-collapse-arrow svg{
  width:18px;height:13px;
}
@keyframes detArrowBreath{
  0%,100%{ transform:translateY(0); opacity:.78; }
  50%{ transform:translateY(-3px); opacity:1; }
}
@media (prefers-reduced-motion:reduce){
  .det-collapse:not(.open) .det-collapse-arrow{ animation:none; }
}

.det-collapse-handle{
  display:flex;align-items:center;justify-content:center;
  width:auto;
}
.det-collapse.open .det-collapse-arrow{transform:rotate(180deg)}
.det-collapse.open .det-collapse-handle{width:auto;flex-shrink:0}
/* 资源 tab 切换 */
.det-res-tabs{display:flex!important;gap:8px;flex:1 1 auto;justify-content:center;min-width:0}
.det-res-tab{display:inline-flex!important}
.det-res-tab{
  background:transparent;border:none;cursor:pointer;
  color:rgba(255,255,255,.55);font-size:14px;font-weight:var(--fw-strong);
  padding:6px 12px;border-radius:999px;
  white-space:nowrap;
  display:inline-flex;align-items:center;transition:background .15s,color .15s;
}
.det-res-tab.active{color:#111;background:#fff}
.det-res-tab em{
  font-style:normal;margin-left:6px;padding:1px 7px;border-radius:999px;
  font-size:11px;font-weight:var(--fw-strong);color:rgba(255,255,255,.7);
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);
}
.det-res-tab.active em{
  color:#111;background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.08);
}
.det-res-pane[hidden]{display:none}
.det-collapse-body{display:none;padding:0 14px 12px;min-height:0;flex:1 1 auto;overflow:hidden}
.det-collapse.open .det-collapse-body{display:block;overflow-y:auto;-webkit-overflow-scrolling:touch}
.det-collapse-body .pan-list{max-height:48vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
@media (orientation:landscape){
  .det-collapse-body .pan-list{max-height:min(42vh, 280px)}
}
.det-collapse .pan-cfg-btn{flex-shrink:0}
.det-res-pane[hidden]{display:none !important}


/* poster row — 海报已独立展示为顶部大图，此处只保留文字标题区 */
.det-poster-row{
  display:flex;gap:16px;align-items:flex-end;
  margin-top:18px;
  margin-bottom:18px;
}
.det-title-block{flex:1;min-width:0;padding-bottom:4px}

/* eyebrow tag */
.det-eyebrow{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent2);margin-bottom:10px;
  display:flex;align-items:center;gap:6px;font-weight:700;
}
.det-eyebrow::before{content:'';display:inline-block;width:12px;height:1px;background:var(--accent2)}

/* main title */
.det-main-title{
  font-size:clamp(22px,6vw,38px);font-weight:var(--fw-display);line-height:1.08;
  letter-spacing:-.01em;
  text-shadow:0 3px 16px rgba(0,0,0,.6);
  margin-bottom:10px;
}

/* meta pills */
.det-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.det-pill{
  padding:5px 11px;border-radius:999px;
  color:rgba(255,255,255,.88);
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  font-size:12px;line-height:1.4;font-weight:600;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.det-pill.accent{
  color:#fff;
  border-color:rgba(var(--accent-rgb),.45);
  background:rgba(var(--accent-rgb),.28);
  font-weight:700;
}

/* action buttons — 居中 + 与首页主按钮统一质感 */
.det-actions{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 18px;align-items:center;justify-content:center}
.det-play-btn{
  position:relative;overflow:visible;
  display:inline-flex;align-items:center;justify-content:center;
  color:#1a1a1a;
  cursor:pointer;
  width:62px;height:62px;padding:0;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  border:none;
  box-shadow:0 6px 24px rgba(0,0,0,.28);
  /* 不在此过渡 opacity，避免与 .det-hero-cta 显隐叠闪 */
  transition:transform .2s var(--ease-press), background .2s, box-shadow .2s;
}
.det-play-btn svg{width:22px;height:22px;margin-left:3px;fill:currentColor}
.det-play-btn::before{display:none !important;content:none !important;animation:none !important}
.det-play-btn.valid{ color:var(--green); }
.det-hero-cta .det-play-btn:active{
  transform:scale(.94);
  background:rgba(255,255,255,.98);
  box-shadow:0 3px 14px rgba(0,0,0,.22);
}


/* 瓜子首页多板块（对齐官网） */
.gz-home{padding:4px 0 24px}
.gz-sec{margin:0 0 18px}
.gz-sec-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;gap:10px}
.gz-sec-title{font-size:16px;font-weight:700;color:#fff;letter-spacing:.02em;line-height:1.3}
.gz-sec-more{border:none;background:transparent;color:#2fe6af;font-size:13px;font-weight:600;cursor:pointer;padding:4px 2px;flex-shrink:0}
.gz-sec-more:active{opacity:.7}
.gz-sec .grid{padding-top:0}
/* section label */
.det-sec-label{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#fff;
  margin:12px 0 8px;
  display:flex;align-items:center;gap:10px;font-weight:700;
}
.det-sec-label::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.08)}


/* 资源源：按站源分组标题 */
.det-src-label{
  display:flex;align-items:center;gap:8px;
  margin:12px 0 6px;padding:0 2px;
  font-size:12px;font-weight:700;color:rgba(255,255,255,.55);
  letter-spacing:.04em;
}
.det-src-label:first-child{margin-top:2px}
.det-src-label span{flex:0 0 auto}
.det-src-label em{
  font-style:normal;font-size:11px;font-weight:var(--fw-strong);
  padding:1px 7px;border-radius:999px;
  background:rgba(255,255,255,.10);color:rgba(255,255,255,.75);
}
.det-src-label::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.08)}
.det-collapse-handle{
  display:flex;align-items:center;justify-content:center;
  width:auto;flex-shrink:0;
}


/* 资源源：按站源分组标题 */
/* 网盘资源区 — 整齐单列 */
.pan-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.pan-item{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:12px;
  padding:12px 14px;border-radius:var(--radius-md);
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.10);
  /* 去掉外阴影，只留极轻内高光，列表更干净 */
  box-shadow:none;
  transition:transform .18s var(--ease-out), background .18s ease, border-color .18s ease;
  min-width:0;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  position:relative;
}
.pan-item::before{
  content:'';
  position:absolute;left:0;top:20%;bottom:20%;width:2px;border-radius:2px;
  background:transparent;
  transition:background .18s ease, top .18s ease, bottom .18s ease;
}
@media(hover:hover){
  .pan-item:hover{
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.18);
    box-shadow:none;
  }
  .pan-item:hover::before{ top:10%; bottom:10%; }
}
.pan-item:active{transform:scale(.985)}
/* 列表里不再显示网盘类型角标（分类 tab 已表明类型） */
.pan-item .pan-type,
.pan-list .pan-type{
  display:none !important;
}
.pan-type{
  flex-shrink:0;
  padding:5px 11px;border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.8);font-size:11px;font-weight:var(--fw-strong);
  min-width:46px;text-align:center;
  text-shadow:none;
}
.pan-info{flex:1;min-width:0;overflow:hidden}
.pan-name{font-size:13px;font-weight:var(--fw-title);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgba(255,255,255,.94)}
.pan-meta{
  display:flex;align-items:center;gap:8px;min-width:0;margin-top:4px;
}
.pan-quality{
  flex-shrink:0;
  font-size:10px;font-weight:var(--fw-strong);letter-spacing:.02em;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  padding:1px 7px;border-radius:999px;
  max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pan-url{color:rgba(255,255,255,.42);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;min-width:0;flex:1}
/* 网盘类型左边色条 */
.pan-item[data-pan="online"]::before{ background:#30D158 !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="quark"]::before{ background:#4e6ef2 !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="aliyun"]::before{ background:#ff6a00 !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="baidu"]::before{ background:#2d6cf6 !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="xunlei"]::before{ background:#3b9bff !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="p115"]::before{ background:#27ae60 !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="p123"]::before{ background:#1abc9c !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="tianyi"]::before{ background:#e74c3c !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="mobile"]::before{ background:#9b59b6 !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="uc"]::before{ background:#f1c40f !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="magnet"]::before{ background:#95a5a6 !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan="other"]::before{ background:rgba(255,255,255,.28) !important; top:14% !important; bottom:14% !important; }
.pan-item[data-pan]::before{ opacity:.95; }
@media(hover:hover){
  .pan-item[data-pan]:hover::before{ top:10% !important; bottom:10% !important; }
}
.pan-actions{flex-shrink:0;display:flex;gap:6px;align-items:center}
.copy-btn{
  height:30px;padding:0 12px;border-radius:var(--radius-full);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.82);font-size:12px;font-weight:var(--fw-strong);cursor:pointer;
  display:inline-flex;align-items:center;transition:background .15s ease, border-color .15s ease;
  box-shadow:none;
}
.copy-btn:active{transform:scale(.95);opacity:.8}
@media(hover:hover){.copy-btn:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2)}}
.pan-open-btn{
  height:30px;padding:0 14px;border-radius:var(--radius-full);
  background:#fff;
  color:#111;font-size:12px;font-weight:var(--fw-strong);cursor:pointer;
  box-shadow:none;
  display:inline-flex;align-items:center;
  border:none;
  transition:opacity .12s,transform .1s;
}
.pan-open-btn:active{transform:scale(.95);opacity:.85}
@media(hover:hover){.pan-open-btn:hover{opacity:.88}}

/* ===== 盘搜（PanSou 聚合网盘搜索）===== */
.pan-cfg-btn{
  background:transparent;border:none;color:var(--muted);
  font-size:13px;cursor:pointer;padding:2px 4px;flex-shrink:0;
  line-height:1;transition:opacity .12s;
}
.pan-cfg-btn:active{opacity:.5}

/* ===== 自绘弹窗：替代原生 prompt/confirm，避免浏览器“网址为 xxx 显示”样式 ===== */
.custom-modal-mask{
  position:fixed;inset:0;z-index:80;
  background:rgba(6,8,12,.48);
  backdrop-filter:blur(18px) saturate(1.35);
  -webkit-backdrop-filter:blur(18px) saturate(1.35);
  display:flex;align-items:center;justify-content:center;
  /* 用 visualViewport 变量动态居中，避免输入法把弹窗顶飞 */
  top:var(--vv-top, 0px);
  left:var(--vv-left, 0px);
  width:var(--vv-width, 100%);
  height:var(--vv-height, 100%);
  right:auto;bottom:auto;
  padding:16px;
  box-sizing:border-box;
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.custom-modal-mask.show{opacity:1;pointer-events:auto}
.custom-modal{
  position:relative;
  width:100%;max-width:380px;
  max-height:min(78dvh, var(--vv-height, 86vh), 720px);
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  margin:0 auto;
  flex-shrink:0;
  /* 磨砂玻璃 */
  background:
    linear-gradient(155deg,
      rgba(255,255,255,0.16) 0%,
      rgba(var(--accent-rgb),0.10) 42%,
      rgba(18,22,30,0.72) 100%);
  backdrop-filter:blur(40px) saturate(1.85) brightness(1.05);
  -webkit-backdrop-filter:blur(40px) saturate(1.85) brightness(1.05);
  border:1px solid rgba(255,255,255,.22);
  border-top-color:rgba(255,255,255,.34);
  border-radius:var(--radius-xl);
  box-shadow:
    0 1px 0 rgba(255,255,255,.18) inset,
    0 -1px 0 rgba(255,255,255,.06) inset,
    0 24px 64px rgba(0,0,0,.55),
    0 8px 24px rgba(0,0,0,.28);
  padding:20px 18px 16px;
  transform:translateY(12px) scale(.96);
  transition:transform .28s cubic-bezier(0.22,1,0.36,1), opacity .25s ease;
  box-sizing:border-box;
}
.custom-modal-mask.show .custom-modal{transform:translateY(0) scale(1)}
.custom-modal-title{
  font-size:16px;font-weight:var(--fw-display);color:#fff;margin-bottom:12px;
  letter-spacing:.02em;
}
.custom-modal-input{
  width:100%;height:42px;border-radius:12px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  color:var(--text);font-size:14px;padding:0 12px;outline:0;
  transition:var(--transition-fast);
  box-sizing:border-box;
}
.custom-modal-input:focus{
  border-color:rgba(var(--accent-rgb),.5);
  background:rgba(255,255,255,.11);
  box-shadow:none;
}
textarea.custom-modal-input{
  height:auto;min-height:110px;padding:10px 12px;
  line-height:1.45;resize:vertical;
}
.custom-modal-actions{
  display:flex;justify-content:flex-end;align-items:center;
  gap:8px;margin-top:16px;flex-wrap:wrap;
}
.custom-modal-btn{
  border:none;
  background:rgba(255,255,255,.12);
  color:rgba(255,255,255,.92);
  font-size:13px;font-weight:700;
  padding:0 16px;height:38px;min-width:72px;
  border-radius:999px;
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:transform .15s ease, background .15s ease, opacity .12s ease, box-shadow .15s ease;
  box-shadow:none;
  -webkit-tap-highlight-color:transparent;
}
.custom-modal-btn:active{
  opacity:.85;
  transform:scale(.96);
  background:rgba(255,255,255,.18);
}
.custom-modal-btn.accent{
  background:#fff;
  color:#111;
  border:1px solid transparent;
  box-shadow:0 2px 10px rgba(0,0,0,.18);
  font-weight:var(--fw-display);
}
.custom-modal-btn.accent:active{
  background:rgba(255,255,255,.92);
  box-shadow:0 1px 6px rgba(0,0,0,.14);
  transform:scale(.96);
}
/* 导航模式切换：统一胶囊按钮 */
.nav-mode-switch{
  display:flex;gap:8px;margin:0 0 14px;
}
.nav-mode-switch button{
  flex:1;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.78);
  font-size:13px;font-weight:700;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
  -webkit-tap-highlight-color:transparent;
}
.nav-mode-switch button:active{transform:scale(.97)}
.nav-mode-switch button.on{
  background:#fff;
  color:#111;
  border-color:transparent;
  box-shadow:0 2px 10px rgba(0,0,0,.18);
}
/* ===== 盘搜：网盘类型多选 ===== */
.pan-type-cfg{margin-top:14px}
.pan-type-cfg-label{
  display:flex;align-items:center;justify-content:space-between;
  font-size:12px;color:var(--muted);font-weight:700;margin-bottom:8px;
}
.pan-type-all{
  border:none;background:rgba(var(--accent-rgb),.16);color:var(--accent);
  font-size:12px;font-weight:700;padding:3px 10px;border-radius:var(--radius-full);
  cursor:pointer;transition:opacity .12s;
}
.pan-type-all:active{opacity:.55}
.pan-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pan-type-chip{
  display:flex;align-items:center;justify-content:center;gap:4px;
  height:38px;border-radius:var(--radius-md);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  color:var(--muted);font-size:13px;font-weight:700;
  cursor:pointer;-webkit-user-select:none;user-select:none;
  transition:var(--transition-fast);
}
.pan-type-chip:active{transform:scale(.96)}
.pan-type-chip.on{
  background:rgba(var(--accent-rgb),.18);
  border-color:rgba(var(--accent-rgb),.5);
  color:#fff;
}
.pan-type-chip .tick{width:14px;height:14px;flex-shrink:0;opacity:0;transition:opacity .12s}
.pan-type-chip.on .tick{opacity:1}
.pan-search-tabs{
  display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;margin-bottom:10px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.pan-search-tabs::-webkit-scrollbar{display:none}
.pan-search-tab{
  flex-shrink:0;padding:7px 14px;border-radius:999px;
  font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;
  border:none;
  color:rgba(255,255,255,.82);
  background:rgba(255,255,255,.12);
  transition:background .15s ease, color .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.pan-search-tab.active{
  color:#111 !important;
  background:#fff !important;
  font-weight:700;
}
.pan-search-status{
  padding:18px 14px;text-align:center;color:var(--muted);font-size:13px;
}
.pan-health-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.22);transition:background .2s;
}
.pan-health-dot[data-state="ok"]{background:var(--green);box-shadow:var(--green-glow)}
.pan-health-dot[data-state="bad"]{background:#ff4d4f}
.pan-health-dot[data-state="locked"]{background:#ffb020}
.pan-health-dot[data-state="uncertain"]{background:rgba(255,255,255,.35)}
.pan-health-dot[data-state="unsupported"]{visibility:hidden}


/* ===== 卡片骨架屏 ===== */
.skeleton-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px 12px;
  padding-top:2px;
}
@media(orientation:portrait) and (min-width:600px){
  .skeleton-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(orientation:portrait) and (min-width:900px){
  .skeleton-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(orientation:landscape){
  .skeleton-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(orientation:landscape) and (min-width:900px){
  .skeleton-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
}
@media(orientation:landscape) and (min-width:1200px){
  .skeleton-grid{grid-template-columns:repeat(8,minmax(0,1fr))}
}
.skel-card{min-width:0}
.skel-poster{
  width:100%;
  aspect-ratio:2/3;
  border-radius:14px;
  background:linear-gradient(110deg,
    rgba(255,255,255,.06) 0%,
    rgba(255,255,255,.12) 40%,
    rgba(255,255,255,.06) 80%);
  background-size:200% 100%;
  animation:skelShimmer 1.25s ease-in-out infinite;
}
.skel-meta{padding:10px 2px 0}
.skel-line{
  height:12px;
  border-radius:6px;
  margin-bottom:8px;
  background:linear-gradient(110deg,
    rgba(255,255,255,.06) 0%,
    rgba(255,255,255,.11) 45%,
    rgba(255,255,255,.06) 90%);
  background-size:200% 100%;
  animation:skelShimmer 1.25s ease-in-out infinite;
}
.skel-line.short{width:55%;margin-bottom:0}
@keyframes skelShimmer{
  0%{background-position:100% 0}
  100%{background-position:-100% 0}
}
html.no-aspect-ratio .skel-poster{height:0;padding-bottom:150%}

/* 类别骨架屏：与卡片骨架同色的微光胶囊，占住 chips 行，分类加载时不再空白跳变 */
.skel-chip{
  flex-shrink:0;
  height:34px;
  border-radius:999px;
  background:linear-gradient(110deg,
    rgba(255,255,255,.06) 0%,
    rgba(255,255,255,.12) 40%,
    rgba(255,255,255,.06) 80%);
  background-size:200% 100%;
  animation:skelShimmer 1.25s ease-in-out infinite;
}

/* 加载骨架 */
.det-loading{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:60vh;gap:14px;color:var(--muted);font-size:14px;
}
.det-spinner{
  width:36px;height:36px;border-radius:50%;
  border:3px solid rgba(255,255,255,.08);
  border-top-color:var(--accent);
  animation:det-spin .7s linear infinite;
}
@keyframes det-spin{to{transform:rotate(360deg)}}

/* 无限预加载底部提示条：正常预取时用户基本看不到，只有快滑到底才会露出来 */
#infiniteSentinel{min-height:1px}
.inf-hint{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:18px 0 10px;color:rgba(255,255,255,.30);font-size:12px;line-height:1;
}
.inf-hint .inf-spin{
  width:14px;height:14px;flex:0 0 14px;border-radius:50%;
  border:2px solid rgba(255,255,255,.12);
  border-top-color:var(--accent);
  animation:det-spin .7s linear infinite;
}
.inf-hint.is-error{color:rgba(255,255,255,.42)}
.inf-hint .inf-retry{
  color:var(--accent);padding:5px 12px;margin-left:2px;border-radius:999px;
  background:rgba(255,255,255,.07);cursor:pointer;-webkit-tap-highlight-color:transparent;
}
.inf-hint .inf-retry:active{background:rgba(255,255,255,.14)}

.empty{
  padding:36px 20px;text-align:center;color:var(--muted);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0.03) 100%),
    rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;font-size:14px;font-weight:500;
  backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.close-bar{display:none}

/* ========== 平板（≥600px）优化 ========== */
@media(min-width:600px){
  .brand{font-size:22px}
  .btn{font-size:15px;padding:0 16px}
}

/* ========== Tab S9 / 大平板（≥720px）========== */
@media(min-width:720px){
  .panel{
    max-width:820px;margin:32px auto;
    border-radius:var(--radius-xl);
    min-height:auto;
    padding:24px 22px 32px;
  }
  .head{flex-direction:row;align-items:flex-start}
  .pic{width:160px}
  .title{font-size:22px}
  .pan-item{
    gap:14px;padding:14px 18px;
  }
  .pan-name{font-size:14px}
  .pan-actions{flex-wrap:nowrap}
}

/* ========== 大屏平板 / 桌面（≥960px）========== */
@media(min-width:960px){
  .app{max-width:1400px;margin:0 auto}
}
@media(min-width:1200px){
  .app{max-width:1400px;margin:0 auto}
}


/* 盘搜框：固定约 6 条高度，资源数量变化时不再高低跳动，不足 6 条留白 */
.pan-search-box .pan-list{height:400px;overflow-y:auto}
/* 详情页“网盘资源 / 盘搜资源”两块：默认竖排堆叠 */
.det-pan-cols{display:block}
/* 平板横屏：两块并排、各自内部滚动、固定等高（对齐不层次不齐）*/
@media(min-width:900px) and (orientation:landscape){
  .panel{max-width:1120px}
  .det-pan-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
  .det-pan-col{min-width:0;display:flex;flex-direction:column}
  .det-pan-col>.det-sec-label{margin-top:0}
  .det-pan-col>.pan-list{height:400px;overflow-y:auto}                              /* 网盘资源框：定高，与盘搜框统一 */
  .det-pan-col>.pan-search-box{height:400px;display:flex;flex-direction:column}     /* 盘搜框：与左侧等高 */
  .det-pan-col>.pan-search-box>.pan-list{flex:1;min-height:0;max-height:none;overflow-y:auto}
}

/* ========== 悬停效果仅限有鼠标的设备 ========== */
@media(hover:hover){
  .card:hover{
    transform:translateY(-3px);
    border-color:rgba(var(--accent2-rgb),.3);
  }
  .card:hover .poster img{transform:scale(1.05)}
  .card:active{transform:none;opacity:1}
  .btn:hover{background:rgba(60,72,88,.95);transform:translateY(-1px)}
  .btn.primary:hover{opacity:.92}
  .det-play-btn:hover{opacity:.92}
  .tab:hover{background:rgba(50,60,74,.9);color:rgba(255,255,255,.75)}
  .chip:hover{background:rgba(255,255,255,.20);color:#fff}
  .chip.active:hover{background:#fff;color:#111}
}
/* ========== 回顶按钮：iOS 悬浮球风格（右下角）========== */
#backTop{
  position:fixed;
  right:16px;
  bottom:calc(var(--safe-bottom) + 96px);
  top:auto;
  z-index:60;
  width:40px;height:40px;
  border-radius:50%;
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:
    0 4px 14px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.28);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  opacity:0;pointer-events:none;
  touch-action:none;
  transition:opacity .24s ease, transform .14s ease, background .14s ease;
}
#backTop.show{opacity:1;pointer-events:auto}
/* 详情页打开时隐藏 */
body:has(.sheet.active) #backTop,
body.sheet-open #backTop{opacity:0!important;pointer-events:none!important}
#backTop.left{
  /* 拖到左侧时保持圆形，仅换左右边距由 JS 写 left/right */
  border-radius:50%;
}
#backTop.dragging{
  opacity:1;transition:none;
  transform:scale(1.08);
  box-shadow:0 10px 28px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.4);
}
#backTop:active{transform:scale(.92);background:rgba(255,255,255,.28)}
#backTop svg{display:block;flex-shrink:0;width:20px;height:20px} /* 图标尺寸固定，不随圆钮缩小 */

/* ========== 轻提示 toast（收藏反馈等）========== */
#toast{
  position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 96px);
  transform:translateX(-50%) translateY(10px);
  z-index:70;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0.05) 100%),
    rgba(20,24,32,0.72);
  color:#fff;
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  backdrop-filter:blur(24px) saturate(180%);
  border:1px solid rgba(255,255,255,0.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 10px 28px rgba(0,0,0,.35);
  padding:10px 18px;border-radius:999px;
  font-size:13px;font-weight:700;white-space:nowrap;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 6px 22px rgba(0,0,0,.5);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  opacity:0;pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ========== 搜索记录：镂空，无背景框 ========== */
#searchHistory{
  position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;
  max-height:none;overflow:visible;
  -webkit-overflow-scrolling:touch;
  border-radius:0;
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border:none;
  box-shadow:none;
  display:none;
  padding:4px 0 8px;
}
#searchHistory.show{display:block}
.sh-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 14px 8px;
  font-size:12px;font-weight:600;letter-spacing:0;
  color:rgba(255,255,255,.38);
  border-bottom:none;
  background:transparent;
}
.sh-clear{
  color:rgba(255,255,255,.45);font-size:13px;font-weight:500;
  cursor:pointer;padding:2px 4px;border-radius:0;
  background:transparent;
}
.sh-clear:active{color:var(--accent);background:transparent;opacity:.7}
.sh-item{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:10px 14px;cursor:pointer;
  border-bottom:none;
  background:transparent;
  border-radius:10px;
}
.sh-item:last-child{border-bottom:0}
.sh-item:active{background:rgba(255,255,255,.08)}
@media(hover:hover){.sh-item:hover{background:rgba(255,255,255,.06)}}
.sh-kw{
  display:flex;align-items:center;gap:10px;min-width:0;
  font-size:15px;font-weight:400;color:rgba(255,255,255,.9);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  text-shadow:0 1px 8px rgba(0,0,0,.45);
}
.sh-kw svg{flex-shrink:0;color:rgba(255,255,255,.32);stroke-width:1.6;filter:drop-shadow(0 1px 4px rgba(0,0,0,.4))}
.sh-del{
  flex-shrink:0;width:24px;height:24px;display:grid;place-items:center;
  color:rgba(255,255,255,.32);border-radius:0;
}
.sh-del:active{color:rgba(255,255,255,.55);background:transparent}
.sh-empty{display:none}

/* ========== 美化增强 · 第二轮 ========== */
/* 播放按钮保持 Apple TV 简洁圆形，不再套彩色光晕/扫光 */
.det-res-tab{
  border:1px solid transparent !important;
}
.det-res-tab.active{
  background:#fff !important;
  border-color:transparent !important;
  box-shadow:none !important;
  color:#111 !important;
}
.pan-item{
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.pan-item:active{ transform:scale(.985); }
.search-sugg{
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 16px 40px rgba(0,0,0,.5) !important;
  overflow:hidden;
}
.sugg-item{ padding:10px 14px !important; }
.sugg-poster{
  border-radius:8px !important;
  box-shadow:0 4px 12px rgba(0,0,0,.35);
  transition:transform .2s ease;
}
@media (hover:hover){
  .sugg-item:hover .sugg-poster{ transform:scale(1.03); }
}
/* src-tab.on capsule override removed */
.loading-dots{
  display:inline-flex; gap:6px; align-items:center; justify-content:center;
  margin-top:12px;
}
.loading-dots span{
  width:6px;height:6px;border-radius:50%;
  background:rgba(var(--accent-rgb),.85);
  animation:dotPulse 1s ease-in-out infinite;
  box-shadow:0 0 8px rgba(var(--accent-rgb),.5);
}
.loading-dots span:nth-child(2){animation-delay:.15s}
.loading-dots span:nth-child(3){animation-delay:.3s}
@keyframes dotPulse{
  0%,80%,100%{transform:scale(.6); opacity:.4}
  40%{transform:scale(1); opacity:1}
}
#sheet.active .sheet-inner,
#sheet.active .det-scroll{
  animation:sheetBodyIn .35s cubic-bezier(.22,1,.36,1) both;
}
@keyframes sheetBodyIn{
  from{opacity:0; transform:translateY(12px)}
  to{opacity:1; transform:translateY(0)}
}
@media (prefers-reduced-motion:reduce){
  .det-play-btn::after, .loading-dots span,
  #sheet.active .sheet-inner, #sheet.active .det-scroll{animation:none!important}
}


/* 收起态：站源融入底坞，无独立轮廓 */
.bottom-dock:not(.expanded) .src-tab,
.bottom-dock:not(.expanded) .src-tab.on{
  border-radius:0 !important;
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
/* 展开态：独立胶囊样式 */
.src-row.expanded .src-tab{
  border-radius:999px !important;
}
.src-row.expanded .src-tab.on{
  background:#fff !important;
  border:none !important;
  box-shadow:0 1px 3px rgba(0,0,0,0.1) !important;
  color:#111 !important;
}
.src-row.expanded .src-tab:not(.on){
  /* 未选中：深灰字，白玻璃上清晰可读 */
  color:rgba(0,0,0,0.72) !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}
.src-row.expanded .src-tab:active{
  opacity:.85 !important;
  transform:scale(.96);
}
.bottom-dock .search-pill:active{
  background:rgba(255,255,255,0.10) !important;
}

/* ========== Apple 风格交互动效 ========== */
/* 卡片入场：仅在 .anim-enter 时播放一次；禁止用 :not(.slide-*)，
   否则 slide 结束后去掉 class 会再次触发 cardIn，造成「出来后又闪一下」 */
@keyframes cardIn{
  from{opacity:0; transform:translateY(16px) scale(.96)}
  to{opacity:1; transform:none}
}

/* ===== 放空有声书：编号文字列表 ===== */
.list-view{display:flex;flex-direction:column;gap:0;padding:4px 0 20px}
.list-row{
  display:flex;flex-direction:column;gap:3px;
  padding:12px 6px;cursor:pointer;
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:background .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.list-row:active{background:rgba(255,255,255,.06)}
.list-row-top{display:flex;align-items:center;gap:8px;min-width:0}
.list-num{flex-shrink:0;font-size:14px;font-weight:600;color:rgba(255,255,255,.45);min-width:1.6em;text-align:right}
.list-title{flex:1;min-width:0;font-size:15px;font-weight:600;color:#fff;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.35}
.list-time{font-size:12px;color:#ff6b6b;padding-left:calc(1.6em + 8px);line-height:1.3}
.grid.anim-enter .card{
  animation:cardIn .48s var(--ease-out) both;
}
.grid.anim-enter .card:nth-child(1){animation-delay:.02s}
.grid.anim-enter .card:nth-child(2){animation-delay:.05s}
.grid.anim-enter .card:nth-child(3){animation-delay:.08s}
.grid.anim-enter .card:nth-child(4){animation-delay:.11s}
.grid.anim-enter .card:nth-child(5){animation-delay:.14s}
.grid.anim-enter .card:nth-child(6){animation-delay:.17s}
.grid.anim-enter .card:nth-child(7){animation-delay:.20s}
.grid.anim-enter .card:nth-child(8){animation-delay:.23s}
.grid.anim-enter .card:nth-child(9){animation-delay:.26s}
.grid.anim-enter .card:nth-child(n+10){animation-delay:.28s}
/* 搜索结果增量追加：仅新卡轻量淡入，避免整屏重绘闪烁 */
.grid.search-append .card.is-new{
  animation:cardIn .32s var(--ease-out) both;
}
/* 滑动切换：只做横向位移，卡片本身不再做入场淡入 */
.grid.slide-l .card,
.grid.slide-r .card{
  animation:none !important;
  opacity:1;
  transform:none;
}

/* 分类切换滑动更跟手 */
.grid.slide-l{animation:catSlideFromR .34s var(--ease-out)}
.grid.slide-r{animation:catSlideFromL .34s var(--ease-out)}
@keyframes catEdgeBounceL{
  0%{transform:none}
  35%{transform:translateX(-12px)}
  70%{transform:translateX(4px)}
  100%{transform:none}
}
@keyframes catEdgeBounceR{
  0%{transform:none}
  35%{transform:translateX(12px)}
  70%{transform:translateX(-4px)}
  100%{transform:none}
}
#content.edge-l{animation:catEdgeBounceL .38s var(--ease-spring)}
#content.edge-r{animation:catEdgeBounceR .38s var(--ease-spring)}

/* 底坞：展开/收起轻弹 */
.bottom-dock{
  transition:
    max-width .42s var(--ease-spring),
    border-color .25s var(--ease-out),
    box-shadow .3s var(--ease-out),
    transform .28s var(--ease-spring),
    opacity .25s var(--ease-out) !important;
}
.bottom-dock.expanded{
  /* 展开态阴影已在主规则中定义，这里不再用旧式厚投影覆盖琉璃高光 */
}
.src-row{
  transition:
    max-width .42s var(--ease-spring),
    opacity .22s var(--ease-out) !important;
}
.src-tab{
  transition:
    transform .28s var(--ease-spring),
    opacity .22s var(--ease-out),
    background .25s var(--ease-out),
    color .2s,
    max-width .38s var(--ease-spring),
    padding .28s var(--ease-out),
    box-shadow .25s var(--ease-out) !important;
}
.src-row.expanded .src-tab:active{
  transform:scale(.92) !important;
  transition-duration:.1s !important;
}
.search-pill{
  transition:transform .28s var(--ease-spring), background .2s var(--ease-out) !important;
}
.search-pill:active{
  transform:scale(.9);
  transition-duration:.1s !important;
}

/* 搜索栏滑入：弹簧 */
.bar{
  transition:transform .4s var(--ease-spring), opacity .28s var(--ease-out) !important;
}

/* 详情内容入场 */
@keyframes sheetBodyIn{
  from{opacity:0; transform:translateY(20px) scale(.985)}
  to{opacity:1; transform:none}
}
/* TMDB 徽标标题：向上弹出（从下方升起），不下落 */
@keyframes tmdbLogoIn{
  from{opacity:0; transform:translateY(26px)}
  to{opacity:1; transform:translateY(0)}
}
#sheet.active:not(.sheet-anim-done) .panel,
#sheet.active:not(.sheet-anim-done) .det-collapse{
  animation:sheetBodyIn .48s var(--ease-out) both;
}
#sheet.active:not(.sheet-anim-done) .det-tmdb-logo,
#sheet.active:not(.sheet-anim-done) #detLogo{
  animation:tmdbLogoIn .5s var(--ease-spring) both;animation-delay:.06s;
}
#sheet.active:not(.sheet-anim-done) .det-collapse{animation-delay:.12s}
#sheet.active:not(.sheet-anim-done) .panel{animation-delay:.04s}
#sheet.sheet-anim-done .panel,
#sheet.sheet-anim-done .det-collapse,
#sheet.sheet-anim-done .det-tmdb-logo,
#sheet.sheet-anim-done #detLogo{
  animation:none !important;
}

/* 播放按钮：按压回弹 */
.det-play-btn{
  transition:transform .32s var(--ease-spring), box-shadow .28s var(--ease-out) !important;
}
.det-hero-cta .det-play-btn:active,
.det-play-btn:active{
  transform:scale(.9) !important;
  transition-duration:.1s !important;
  transition-timing-function:var(--ease-press) !important;
}

/* 资源行按压 */
.pan-item{
  transition:transform .28s var(--ease-spring), background .22s var(--ease-out), border-color .22s !important;
}
.pan-item:active{
  transform:scale(.97) !important;
  transition-duration:.1s !important;
}

/* 联想 / 历史列表项 */
.sugg-item,
.sh-item{
  transition:background .18s var(--ease-out), transform .22s var(--ease-spring) !important;
}
.sugg-item:active,
.sh-item:active{
  transform:scale(.98);
  background:rgba(var(--accent-rgb),.16) !important;
}

/* 回顶按钮 */
#backTop{
  transition:opacity .28s var(--ease-out), transform .32s var(--ease-spring), background .2s !important;
}
#backTop:active{
  transform:scale(.86) !important;
  transition-duration:.1s !important;
}

/* 折叠条展开 */
.det-collapse{
  transition:
    max-width .36s var(--ease-spring),
    width .36s var(--ease-spring),
    border-radius .28s var(--ease-out),
    box-shadow .28s var(--ease-out),
    background .28s var(--ease-out),
    border-color .28s var(--ease-out),
    padding .22s var(--ease-out) !important;
}
.det-collapse-arrow{
  transition:transform .32s var(--ease-spring) !important;
}
.det-res-tab{
  transition:background .25s var(--ease-out), color .2s, transform .28s var(--ease-spring), box-shadow .25s !important;
}
.det-res-tab:active{transform:scale(.94)}
.det-res-tab.active{transform:scale(1.03)}

/* 海报图淡入更柔和 */
.det-hero-img{
  transition:opacity .5s var(--ease-out) !important;
}
/* 系统偏好：减少动效时关闭入场动画 */
@media (prefers-reduced-motion:reduce){
  .grid .card,
  #sheet.active .panel,
  #sheet.active .det-bigtitle,
  #sheet.active .det-collapse,
  .grid.slide-l,
  .grid.slide-r,
  #content.edge-l,
  #content.edge-r{
    animation:none !important;
  }
  .card,.chip,.btn,.src-tab,.search-pill,.pan-item,.det-play-btn,#backTop{
    transition-duration:.01ms !important;
  }
}

/* ========== 液态玻璃加强层（全局统一） ========== */
.pan-item{
  background:rgba(255,255,255,.05) !important;
  border:1px solid rgba(255,255,255,.11) !important;
  border-top-color:rgba(255,255,255,.16) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:none !important;
  border-radius:var(--radius-md) !important;
}
.det-play-btn{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  /* 保持 wogg 主题色圆形播放钮，不被液态玻璃层改成白底 */
}
#backTop{
  width:40px !important;height:40px !important;
  background:rgba(255,255,255,.18) !important;
  backdrop-filter:blur(20px) saturate(1.4) !important;
  -webkit-backdrop-filter:blur(20px) saturate(1.4) !important;
  border:1px solid rgba(255,255,255,.28) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.22) inset,
    0 4px 14px rgba(0,0,0,.22) !important;
}
#backTop svg{width:20px !important;height:20px !important;flex-shrink:0;}
.dock-sep{
  background:rgba(255,255,255,.12) !important;
  width:1px;
  height:18px;
  opacity:1;
}
.empty.is-loading{
  background:
    linear-gradient(155deg, rgba(255,255,255,.08) 0%, rgba(var(--accent-rgb),.1) 100%);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-lg);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  padding:28px 20px;
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset;
}


/* pan-list flat polish */
.pan-item:active{ background:rgba(255,255,255,.07) !important; }
.pan-open-btn{
  border:none !important;
  box-shadow:none !important;
}
.pan-open-btn:active{
  transform:scale(.95);
  opacity:.88;
}
.det-collapse-body .pan-list{
  padding:2px 0 4px;
}
.det-src-label{
  opacity:.9;
  margin:10px 0 6px !important;
}


/* ========== iOS 底栏 / 安全区单独适配（对齐听书 redesigned，不改安卓默认） ========== */
/* 要点：内嵌 WebView 常已预留 Home Indicator，禁止再叠完整 safe-area 把底栏顶飞或裁切 */
@supports (-webkit-touch-callout: none) {
  html.is-ios {
    --ios-dock-gap: calc(min(env(safe-area-inset-bottom, 0px), 12px) + 8px);
  }
  html.is-ios,
  html.is-ios body {
    margin: 0 !important;
    padding-top: 0 !important;
    min-height: 100% !important;
    min-height: 100dvh !important;
  }
  html.is-ios .app {
    padding-bottom: 0 !important;
    min-height: 100% !important;
    min-height: 100dvh !important;
    height: var(--fm-web-height, 100%) !important;
    height: var(--fm-web-height, 100dvh) !important;
    box-sizing: border-box;
  }
  /* 顶部安全区只吃一次 */
  html.is-ios {
    --ios-safe-top: max(var(--fm-safe-top, 0px), var(--safe-top, 0px), env(safe-area-inset-top, 0px));
  }
  html.is-ios .app {
    padding-top: calc(var(--ios-safe-top) + 2px) !important;
  }
  html.is-ios.chrome-normal .app {
    padding-top: var(--gap, 10px) !important;
  }
  /*
   * 底坞：只用封顶 12px 的安全区 + 8px 呼吸。
   * WebView 已预留 Home 条时 env 可能仍返回 34，必须 min(...,12) 防止双重抬高；
   * 未预留时至少有 8px，避免贴边裁切。
   */
  html.is-ios .bottom-dock {
    bottom: var(--ios-dock-gap) !important;
  }
  html.is-ios.fm-native .bottom-dock {
    bottom: calc(min(var(--safe-bottom, 0px), 12px) + 8px) !important;
  }
  html.is-ios.search-focused .bottom-dock {
    transform: translateX(-50%) translateY(170px) !important;
  }
  html.is-ios #content {
    padding-bottom: calc(var(--ios-dock-gap) + 70px) !important;
  }
  html.is-ios.nav-mode-top #content {
    padding-bottom: calc(min(env(safe-area-inset-bottom, 0px), 12px) + 20px) !important;
  }
  html.is-ios #backTop {
    bottom: calc(var(--ios-dock-gap) + 78px) !important;
  }
  html.is-ios .det-collapse-row {
    padding-bottom: max(min(env(safe-area-inset-bottom, 0px), 12px), 6px) !important;
  }
}



#browserHlsMask{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
#browserHlsMask .bhp-title{color:#fff;font-size:16px;font-weight:700;margin-bottom:10px;text-align:center;max-width:96vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#browserHlsMask video{width:min(960px,96vw);max-height:62vh;background:#000;border-radius:10px;outline:none}
#browserHlsMask .bhp-eps{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:min(960px,96vw);max-height:22vh;overflow-y:auto;margin-top:12px;padding:4px}
#browserHlsMask .bhp-ep{padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:13px;border:none;cursor:pointer}
#browserHlsMask .bhp-ep.on{background:#fff;color:#111;font-weight:700}
#browserHlsMask .bhp-close{position:absolute;top:calc(var(--safe-top,0px) + 14px);right:16px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;border:none;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center}
#browserHlsMask .bhp-tip{color:rgba(255,255,255,.55);font-size:12px;margin-top:8px;text-align:center}
