:root{--bg:#0f1115;--panel:#161922;--text:#e8eaf1;--muted:#9aa3b2;--brand:#ff4d6d;--border:#242938;--accent:#63b3ed}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang TC","Microsoft JhengHei",Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}
a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
img,video{display:block;max-width:100%;height:auto}

.nav{position:sticky;top:0;z-index:10;background:rgba(15,17,21,.92);backdrop-filter:saturate(150%) blur(8px);border-bottom:1px solid var(--border)}
.nav-inner{max-width:1280px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* 品牌标识：主词白色，强调后缀（SITE_BRAND_ACCENT，默认 JAV）用品牌粉色 */
.brand{display:inline-flex;align-items:baseline;font-weight:900;font-size:20px;letter-spacing:-.02em;margin-right:8px;white-space:nowrap;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.brand .brand-main{color:var(--text)}
.brand .brand-accent{color:var(--brand)}
.footer .brand-main{color:var(--text);font-weight:800}
.footer .brand-accent{color:var(--brand);font-weight:800}
.menu{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0}
.menu a{padding:6px 10px;border-radius:6px;color:var(--muted);white-space:nowrap}
.menu a.active,.menu a:hover{color:var(--text);background:var(--panel)}
.menu a.menu-live{color:#ff4d4f;display:inline-flex;align-items:center;gap:6px}
.menu a.menu-live::before{content:"";width:8px;height:8px;border-radius:50%;background:#ff4d4f;box-shadow:0 0 0 0 rgba(255,77,79,.6);animation:live-pulse 1.6s ease-out infinite}
.menu a.menu-live:hover,.menu a.menu-live.active{color:#fff;background:#ff4d4f}
.menu a.menu-live:hover::before,.menu a.menu-live.active::before{background:#fff;box-shadow:none;animation:none}
@keyframes live-pulse{0%{box-shadow:0 0 0 0 rgba(255,77,79,.6)}70%{box-shadow:0 0 0 8px rgba(255,77,79,0)}100%{box-shadow:0 0 0 0 rgba(255,77,79,0)}}
.search{display:flex;gap:6px}
.search input{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:6px;width:180px;min-width:0}
.search button{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:6px;cursor:pointer}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.lang-select-wrap{flex-shrink:0;display:flex;align-items:center}
.lang-select{appearance:none;-webkit-appearance:none;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239aa3b2' d='M2 4l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 8px center;background-size:12px;border:1px solid var(--border);color:var(--text);font-size:13px;line-height:1.3;padding:6px 28px 6px 10px;border-radius:6px;cursor:pointer;max-width:11rem}
.lang-select:hover,.lang-select:focus{border-color:var(--accent);outline:none}

/* 汉堡按钮（纯 CSS，借助隐藏 checkbox 切换），默认桌面下不可见 */
.nav-toggle{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.nav-burger{display:none;width:40px;height:40px;padding:10px;border-radius:6px;cursor:pointer;background:var(--panel);border:1px solid var(--border);color:var(--text);flex-direction:column;justify-content:space-between;align-items:center;box-sizing:border-box}
.nav-burger span{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s ease,opacity .2s ease}

@media (max-width:720px){
  .nav-inner{padding:8px 12px;gap:8px;row-gap:0}
  .brand{flex:1;font-size:17px}
  .nav-burger{display:flex}
  /* 搜索框整行、占满剩余宽度；放在汉堡按钮之后强制换行 */
  .lang-select-wrap{order:2;margin-left:auto}
  .lang-select{max-width:9rem;font-size:12px}
  .search{order:3;flex:1 1 100%;width:100%;margin-top:8px}
  .search input{flex:1;width:auto}
  .search button{padding:8px 14px}
  /* 菜单默认折叠，checked 时展开成竖排 */
  .menu{order:4;flex:1 1 100%;width:100%;flex-direction:column;display:none;gap:0;padding:8px 0 4px;margin-top:4px;border-top:1px solid var(--border)}
  .menu a{padding:10px 12px;border-radius:6px}
  .menu a.active{background:var(--panel)}
  #nav-toggle:checked ~ .menu{display:flex}
  #nav-toggle:checked ~ .nav-burger{background:var(--brand);border-color:var(--brand)}
  #nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  #nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0}
  #nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
/* 键盘焦点提示，满足 a11y */
.nav-toggle:focus-visible ~ .nav-burger{outline:2px solid var(--accent);outline-offset:2px}

.container{max-width:1280px;margin:0 auto;padding:16px}
@media (max-width:720px){.container{padding:12px}}
.section-title{font-size:18px;font-weight:600;margin:20px 0 10px;border-left:3px solid var(--brand);padding-left:10px}
.actions{margin:12px 0 24px}
.btn{display:inline-block;padding:8px 14px;border-radius:6px;background:var(--panel);border:1px solid var(--border);color:var(--text)}
.btn:hover{background:var(--brand);border-color:var(--brand);color:#fff}

/* 一横排最多 4 张卡片：用 max() 让最小列宽不低于「容器四等分减 gap」，
   宽屏就被限制成 4 列，中等宽度按 200px 起自适应降到 3/2 列。 */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(200px,calc((100% - 36px) / 4)),1fr));gap:12px}
@media (max-width:720px){
  /* 手机竖屏固定 2 列：桌面 minmax(200px) 在 ~360px 容器下只能排 1 列 */
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .card-body{padding:6px 8px}
  .card-title{font-size:12px;min-height:32px}
}
.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:transform .15s}
.card:hover{transform:translateY(-2px);border-color:var(--brand)}
.thumb{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb-date{position:absolute;right:6px;bottom:6px;padding:1px 6px;font-size:11px;line-height:1.4;color:#fff;background:rgba(0,0,0,.65);border-radius:3px;letter-spacing:.3px;pointer-events:none}
.thumb-badges{position:absolute;left:6px;bottom:6px;display:flex;gap:4px;pointer-events:none}
.thumb-badges .badge{padding:1px 6px;font-size:11px;line-height:1.4;color:#fff;border-radius:3px;letter-spacing:.3px;font-weight:500}
.thumb-badges .badge-sub{background:#2b7fff}
.thumb-badges .badge-leak{background:#e53935}
.card-body{padding:8px 10px}
.card-title{font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}

.muted{color:var(--muted)}
.page-title{font-size:20px;font-weight:600;margin:12px 0 16px}
.hl{color:var(--brand)}

.tag-cloud{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.tag{padding:6px 12px;background:var(--panel);border:1px solid var(--border);border-radius:999px;font-size:13px}
.tag:hover{background:var(--brand);border-color:var(--brand);color:#fff}

.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:24px 0}
.p{padding:6px 12px;background:var(--panel);border:1px solid var(--border);border-radius:6px;font-size:13px}
.p.cur{background:var(--brand);border-color:var(--brand);color:#fff}
.p.sep{background:transparent;border:0;color:var(--muted)}

.video-detail .player{background:#0a0a0a;margin-bottom:16px;border-radius:8px;overflow:hidden;position:relative;z-index:1;border:1px solid var(--border)}
.video-detail .player-screen{aspect-ratio:16/9;background:#000}
.video-detail .player-screen video,
.video-detail .player-screen img{width:100%;height:100%;object-fit:contain;background:#000;display:block}

/* PC 播放页：左侧播放器 + 详情，右侧推荐列表（对齐 Laravel md:flex-row + #recommend 侧栏） */
.video-watch-layout{display:flex;flex-direction:column;gap:16px}
.video-watch-main{min-width:0;flex:1}
@media (min-width:768px){
  .video-watch-layout{flex-direction:row;align-items:flex-start;gap:24px}
  .video-watch-layout .recommend-side{margin-top:12px}
  .recommend-side{
    flex:0 0 30%;max-width:360px;min-width:240px;
    position:sticky;top:56px;align-self:flex-start;
    margin-bottom:0
  }
}
@media (max-width:767px){
  .recommend-side{display:none}
}

.time-skip-below{width:100%;box-sizing:border-box;margin:0;padding:8px 10px 10px;background:#0a0a0a;border-top:1px solid rgba(255,255,255,.1)}
.time-skip{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:4px 6px;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-sizing:border-box}
.time-skip::-webkit-scrollbar{height:4px}
.time-skip::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:2px}
.time-skip button{flex:0 0 auto;margin:0;padding:5px 7px;min-height:32px;min-width:38px;font-size:11px;font-weight:600;line-height:1.2;color:#fff;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.85);border-radius:6px;cursor:pointer;box-sizing:border-box}
.time-skip button.time-skip-play{min-width:44px;font-size:14px;padding-left:8px;padding-right:8px}
@media (min-width:768px){
  .time-skip{overflow-x:visible}
  .time-skip button{padding:6px 9px;min-height:34px;min-width:42px;font-size:12px}
  .time-skip button.time-skip-play{min-width:48px;font-size:15px}
}

/* 移动端（竖屏）：播放器 + 时间跳转栏悬浮在视口顶部，下方内容可上拉查看
   - 用 position:fixed 把 player 固定在 viewport 顶部（16:9 占满宽度 + 跳转栏高度）
   - 用 padding-top 在 article 里预留相同高度，避免 h1/meta 被覆盖
   - 横屏时不启用，避免 16:9 播放器占满视口高度后内容无法滚动 */
@media (max-width:720px) and (orientation:portrait){
  .video-detail{padding-top:calc(56.25vw + var(--time-skip-h,52px))}
  .video-detail .player{
    position:fixed;top:0;left:0;right:0;width:100vw;height:auto;
    margin:0;border-radius:0;z-index:40;
    border-bottom:1px solid var(--border);box-shadow:0 2px 10px rgba(0,0,0,.4)
  }
  .video-detail .player-screen{width:100vw;height:56.25vw;aspect-ratio:auto}
  .video-detail .page-title{margin-top:4px;font-size:17px}
}
.meta{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;background:var(--panel);padding:12px 16px;border-radius:8px;border:1px solid var(--border);margin:0 0 16px}
.meta dt{color:var(--muted);font-size:13px}
.meta dd{margin:0;font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{padding:3px 10px;background:var(--bg);border:1px solid var(--border);border-radius:999px;font-size:12px}
.chip:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.desc{background:var(--panel);padding:14px 16px;border-radius:8px;border:1px solid var(--border)}
.desc h2{margin:0 0 8px;font-size:15px;color:var(--muted);font-weight:500}

.footer{max-width:1280px;margin:40px auto 20px;padding:16px;color:var(--muted);font-size:12px;text-align:center;border-top:1px solid var(--border)}
.err{text-align:center;padding:60px 20px}
.err h1{font-size:80px;margin:0;color:var(--brand)}
.err h2{margin:8px 0 16px}

/* 首页搜索 Hero + 热搜词 */
.hero-search{text-align:center;padding:20px 12px 8px;margin:0 0 16px}
.hero-title{font-size:clamp(22px,4vw,34px);font-weight:600;margin:8px 0}
.hero-accent{color:var(--brand)}
.hero-form{display:flex;flex-wrap:wrap;gap:8px;max-width:560px;margin:0 auto 14px}
.hero-form input{flex:1;background:var(--panel);border:1px solid var(--border);color:var(--text);padding:10px 14px;border-radius:8px;font-size:15px}
.hero-form input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(255,77,109,.2)}
.hero-form button{background:var(--brand);border:1px solid var(--brand);color:#fff;padding:10px 18px;border-radius:8px;font-size:15px;cursor:pointer}
.hero-form button:hover{filter:brightness(1.08)}
.hero-keywords{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:960px;margin:0 auto 8px}
.hero-keywords .kw{padding:4px 10px;background:var(--panel);border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--muted)}
.hero-keywords .kw:hover{background:var(--brand);border-color:var(--brand);color:#fff}

/* 推荐区：推荐结果回来前不占额外纵向空间，避免布局抖动 */
.recommend-side,.recommend-bottom,.recommend-home,.recommend-seg{margin:24px 0;min-height:0}
.recommend-side:empty,.recommend-bottom:empty,.recommend-home:empty,.recommend-seg:empty{margin:0}
.recommend-side h3,.recommend-bottom h3,.recommend-home h3{font-size:16px;font-weight:600;margin:8px 0 12px;border-left:3px solid var(--accent);padding-left:10px}
.recommend-side-list{display:flex;flex-direction:column;gap:12px}
.recommend-side-row{display:flex;gap:10px;align-items:stretch;color:inherit;border-radius:8px;transition:background .15s}
.recommend-side-row:hover{color:var(--brand)}
.recommend-side-row .side-thumb{
  position:relative;flex:0 0 50%;max-width:50%;aspect-ratio:16/9;
  background:#000;border-radius:6px;overflow:hidden;border:1px solid var(--border)
}
.recommend-side-row .side-thumb img{width:100%;height:100%;object-fit:cover}
.recommend-side-row .side-title{
  flex:1;min-width:0;font-size:13px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden
}
.recommend-fill-sentinel{height:1px;flex-shrink:0}
.recommend-fill-loading{padding:8px 0;text-align:center;font-size:13px;color:var(--muted)}
.recommend-fill-loading[hidden]{display:none}
.video-now-playing-fill-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.now-playing-fill-title{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text)}

/* 首页分类推荐段（按 tag 聚合） */
.seg-head{display:flex;align-items:center;justify-content:space-between;margin:8px 0 12px;gap:12px}
.seg-title{font-size:18px;font-weight:600;margin:0;border-left:3px solid var(--brand);padding-left:10px}
.btn-sm{padding:4px 10px;font-size:13px}

/* 移动端底部 tab bar：默认桌面隐藏，仅在 <=720px 出现 */
.tabbar{display:none}
@media (max-width:720px){
  .tabbar{
    display:grid;grid-template-columns:repeat(3,1fr);
    position:fixed;left:0;right:0;bottom:0;z-index:50;
    background:rgba(15,17,21,.96);backdrop-filter:saturate(150%) blur(8px);
    border-top:1px solid var(--border);
    padding-bottom:env(safe-area-inset-bottom,0)
  }
  .tabbar .tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px;color:var(--muted);font-size:11px;line-height:1}
  .tabbar .tab svg{opacity:.85}
  .tabbar .tab.active{color:var(--brand)}
  .tabbar .tab.active svg{opacity:1}
  .tabbar .tab:active{background:var(--panel)}
  /* 给主要内容预留 tab bar 高度（约 58px + iOS safe-area），避免页脚/最后一行被盖住 */
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom,0))}
}
