/* 蓝果 languo-ui.css —— 共享组件（卡片/按钮/chip/tab/分页/弹窗/toast/空态/骨架/广告位）及全站弹层
   规范来源 docs/frontend-spec/components.md；弹窗外观以 Figma 毛玻璃为准。 */

/* ---- 按钮 ---- */
.ll-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 16px;border:1px solid var(--line);border-radius:var(--r-btn);background:var(--raised);color:var(--text);font-size:max(12px,var(--ll-fmin,0px));font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none}
.ll-btn:hover{filter:brightness(1.12)}
.ll-btn--primary{border-color:var(--accent);background:var(--accent);color:#04111b;font-weight:700}
.ll-btn--grad{border:0;background:var(--grad-primary);color:#fff}
.ll-btn--pill{border-radius:999px}
.ll-btn--soft{border-color:transparent;background:var(--accent-soft);color:var(--accent);border-radius:999px}
.ll-btn--danger{min-height:30px;padding:5px 18px;border-color:#f06565;border-radius:999px;background:rgba(240,101,101,.063);color:#f06565}
.ll-btn--block{display:flex;width:100%}
.ll-btn--lg{min-height:44px;padding:10px 22px;font-size:max(14px,var(--ll-fmin,0px))}
@media (max-width:1023px){.ll-btn{min-height:44px;padding:9px 14px}.ll-btn--danger{min-height:44px}}
.ll-iconbtn2{display:inline-grid;place-items:center;min-width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}
.ll-iconbtn2:hover{background:var(--raised);color:var(--text)}

/* ---- 区块标题 ---- */
.ll-section{margin:0 0 28px}
@media (max-width:1023px){.ll-section{margin-bottom:24px}}
.ll-section__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.ll-section__head h2{margin:0;font-size:max(18px,var(--ll-fmin,0px));font-weight:700;line-height:1.4}
@media (max-width:1023px){.ll-section__head h2{font-size:16px}}
.ll-more{display:inline-flex;align-items:center;gap:6px;font-size:max(12px,var(--ll-fmin,0px));color:var(--muted)}
.ll-more:hover{color:var(--accent)}
.ll-more--blue{color:var(--accent)}
@media (max-width:1023px){.ll-more{min-height:44px;padding-left:12px;font-size:11px;gap:3px}}
.ll-breadcrumb{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 18px;font-size:max(11px,var(--ll-fmin,0px));color:var(--muted)}
.ll-breadcrumb a:hover{color:var(--accent)}
.ll-title{margin:0 0 16px;font-size:max(23px,var(--ll-fmin,0px));font-weight:700;line-height:1.3}
@media (max-width:1023px){.ll-title{font-size:21px}}

/* ---- 作品卡片 ---- */
.ll-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 16px}
.ll-grid--wide{grid-template-columns:repeat(4,minmax(0,1fr))}
.ll-grid--6{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1023px){.ll-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ll-grid--wide{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* R2 短剧列表：Figma H5 各帧（短剧/男同GV/搜索/我的收藏/首页）两列卡片列距 6px 图距 ≈ 10、行距（标签底→下一张封面）6px ≈ 10，卡宽 ≈170 */
@media (max-width:1023px){.ll-grid,.ll-grid--wide,.ll-grid--6{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 10px}}
.ll-card{min-width:0;display:block;position:relative}
.ll-card__body{display:block}
.ll-card__art{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;border-radius:var(--r-card);background:var(--raised)}
.ll-card--wide .ll-card__art{aspect-ratio:16/9}
.ll-card__art::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.533));pointer-events:none}
.ll-card__art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.ll-card:hover .ll-card__art img{transform:scale(1.045)}
/* 角标与评分按卡片宽度等比缩放（容器查询单位 cqw，基于 .ll-card__art 宽度）。
   比例取自 Figma 高清（113%/79% 缩放实测）：PC 卡宽 288 时角标 ≈54×25.5（18.7%×8.9%）、字 ≈13（4.6%）、距左 3.4%/距顶 4%；
   H5 卡宽 170 时角标 ≈32×17（19%×10%）、字 ≈11（6.5%）、距边 3.5%；评分块与角标同高，PC 宽 23.6%、H5 宽 29.8%。 */
.ll-card__art{container-type:inline-size}
.ll-card__badges{position:absolute;top:4cqw;left:3.4cqw;z-index:3;display:flex;flex-wrap:nowrap;overflow:hidden;align-items:center;gap:2cqw;max-width:calc(100% - 32cqw)}
@media (max-width:1023px){.ll-card__badges .ll-badge:nth-child(n+3){display:none}}
/* 首页和视频网格最多显示两个角标，紧贴组成同一组。 */
.ll-grid .ll-card__badges{gap:0;border-radius:3px}
.ll-grid .ll-card__badges .ll-badge{flex:none;border-radius:0}
/* 第二枚盖住第一枚，裁出从右上向左下弯曲的 S 形拼接线。 */
.ll-grid .ll-card__badges .ll-badge:nth-child(2){position:relative;z-index:1;margin-left:-3cqw;clip-path:polygon(16% 0,14% 3%,12% 7%,9% 13%,7% 20%,6% 28%,6% 70%,5% 80%,3% 90%,1% 97%,0 100%,100% 100%,100% 0)}
.ll-grid .ll-card__badges .ll-badge:nth-child(n+3){display:none}
@media (max-width:1023px){.ll-grid .ll-card__badges{border-radius:6px}}
/* 首页新版：原创蓝、新剧绿、热门橙红，小圆角矩形，与 Web/H5 卡片统一。 */
.ll-badge{display:inline-flex;align-items:center;justify-content:center;height:8.3cqw;padding:0 4.7cqw;border-radius:3px;font-size:max(4.6cqw,var(--ll-fmin,0px));font-weight:400;line-height:1;white-space:nowrap;color:#fff}
.ll-badge svg{display:none}
.ll-badge--original{background:#5c8dff}
.ll-badge--new{background:#35c9a1}
.ll-badge--hot{background:#ff6709;background-image:linear-gradient(90deg,#ff6709,#ff4339)}
/* 评分：黑色半透明 + 黄星 + 黄字 #ffd900。R2 短剧列表：Figma 星标比数字略高（PC 星 ≈ 卡宽 6%、H5 ≈ 8.4%），原 4.6/6.2cqw 偏小，放大后收窄 PC 左右内边距保持评分块总宽不变 */
.ll-card__score{position:absolute;top:4cqw;right:3.4cqw;z-index:3;display:inline-flex;align-items:center;gap:1.2cqw;height:8.3cqw;padding:0 2.5cqw;border-radius:999px;background:rgba(0,0,0,.6);color:#ffd900;font-size:max(4.6cqw,var(--ll-fmin,0px));font-weight:400;line-height:1}
.ll-card__score::before{content:"";width:6cqw;height:6cqw;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffd900' d='M12 2.5l2.94 6.1 6.56.9-4.78 4.6 1.17 6.5L12 17.5l-5.89 3.1 1.17-6.5L2.5 9.5l6.56-.9z'/%3E%3C/svg%3E") center/contain no-repeat}
@media (max-width:1023px){.ll-card__badges{top:3.4cqw;left:3.5cqw;gap:2.4cqw}.ll-badge{height:10cqw;padding:0 3cqw;border-radius:3px;font-size:6.5cqw}.ll-card__score{top:3.4cqw;right:3.5cqw;height:10cqw;padding:0 3cqw;font-size:6.5cqw}.ll-card__score::before{width:8.4cqw;height:8.4cqw}}
/* H5 首页/列表封面角标贴住卡片左上角，按稿件卡宽比例放大。双标沿用上方的 S 形拼接。 */
@media (max-width:1023px){
  .ll-grid .ll-card__badges{top:0;left:0;gap:0;max-width:none;border-radius:var(--r-card) 0 0 0}
  .ll-grid .ll-card__badges .ll-badge{height:16cqw;padding:0 4.3cqw;font-size:7cqw;font-weight:500}
  .ll-grid .ll-card__badges .ll-badge--original{padding-inline:5.5cqw}
  .ll-grid .ll-card__badges .ll-badge--hot{padding-inline:6cqw}
  .ll-grid .ll-card__badges .ll-badge:nth-child(2){margin-left:-4cqw}
}
/* 集数标签按卡片宽度等比缩放（cqw）。Figma 高清实测：PC 卡宽 288 时 108×25.7、字 ≈14、左 10 / 底 12、内边距 13.7、圆角 6；
   H5 首页稿：集数与评分高 10%、字 ≈6.1%、左 / 底 3.5% */
.ll-card__ep{position:absolute;left:3.5cqw;bottom:4.2cqw;z-index:3;max-width:calc(100% - 7cqw);height:8.9cqw;padding:0 4.7cqw;border-radius:2.1cqw;background:rgba(0,0,0,.6);color:#fff;font-size:max(4.9cqw,var(--ll-fmin,0px));font-weight:500;line-height:8.9cqw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1023px){.ll-card__ep{left:3.5cqw;bottom:3.5cqw;max-width:calc(100% - 7cqw);height:10cqw;padding:0 4cqw;border-radius:2.6cqw;font-size:6.1cqw;line-height:10cqw}} /* H5 首页稿：集数标签与评分同高（卡宽 10%） */
/* R2 Figma 高清（搜索结果 / 短剧 / H5 GV 帧一致）：卡片标题 14px，标签胶囊 34×20、字 12px */
.ll-card h3{margin:11px 0 0;font-size:max(14px,var(--ll-fmin,0px));font-weight:650;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
@media (max-width:1023px){.ll-card h3{margin-top:8px}}
.ll-card__tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px;overflow:hidden}
@media (max-width:1023px){.ll-card__tags{margin-top:7px;flex-wrap:nowrap}}
/* Figma 卡片题材胶囊：高 20、底 #23232D（比页面底亮）；PC「都市」胶囊约 33 宽 */
.ll-card__tags span,.ll-card__tags a{min-height:20px;padding:0 5px;border-radius:4px;background:#23232d;color:var(--muted);font-size:max(12px,var(--ll-fmin,0px));line-height:max(20px,calc(var(--ll-fmin,0px)*1.25));cursor:default;white-space:nowrap}
/* 2026-10-22 卡片标签可点进题材页 /tags/{slug}/：标签行在 .ll-card__body 链接之外（不嵌套 <a>），外观与只读胶囊一致，仅 hover 提亮 */
.ll-card__tags a{color:var(--muted);text-decoration:none;cursor:pointer;transition:color .15s,background-color .15s}
.ll-card__tags a:hover,.ll-card__tags a:focus-visible{color:var(--text);background:#2e2e3a}
.ll-card__meta{margin-top:10px;font-size:max(12px,var(--ll-fmin,0px));line-height:max(18px,calc(var(--ll-fmin,0px)*1.25));color:var(--text)}
.ll-card__meta i{font-style:normal;color:var(--muted)}
/* 编辑态勾选圈（Figma 历史记录-03 / 个人中心-08）：在封面右下角，与左下「更新至 N 集」同一行；
   未选中为半透明深色空心圈，选中为实心 #5C8DFF + 白勾；左上角标不动、选中卡片不加描边。
   .ll-card__check 本身是与封面等大的透明层（键盘焦点框落在封面上），圆圈画在 ::before、白勾画在 ::after；
   点击由页面在编辑态按整张卡片处理，所以这一层不接收指针事件。 */
.ll-card__check{position:absolute;top:0;left:0;right:0;z-index:4;display:none;aspect-ratio:3/4;border-radius:var(--r-card);pointer-events:none}
.ll-card--wide .ll-card__check{aspect-ratio:16/9}
.ll-card.is-edit .ll-card__check{display:block}
/* E-05 Figma 历史记录-编辑（PC）：圈直径 26、右 16 / 底 15；未选中 黑 32% 底 + 白 35% 细边；选中 #5C8DFF + 白勾（path 原样，线宽 2.5）。
   浏览记录-编辑（H5，÷2）：圈 18、右 10 / 底 10；未选中白边 51%；白勾线宽 1.5。勾用 data-uri svg 画，不再用边框拼。 */
.ll-card__check::before{content:"";position:absolute;right:16px;bottom:15px;width:26px;height:26px;box-sizing:border-box;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.32) center/100% 100% no-repeat;background-origin:border-box}
.ll-card.is-selected .ll-card__check::before{border-color:#5c8dff;background-color:#5c8dff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath d='M7 12.5L11.229 17.543C11.429 17.781 11.795 17.781 11.995 17.543L19.999 8' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E")}
@media (max-width:1023px){
  .ll-card__check::before{right:10px;bottom:10px;width:18px;height:18px;border-color:rgba(255,255,255,.51)}
  .ll-card.is-selected .ll-card__check::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Cpath d='M9.691 17.31L15.695 24.47C15.895 24.7 16.262 24.7 16.462 24.47L27.691 11.08' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E")}
}
.ll-card--skeleton .ll-card__art{background:var(--raised)}
.ll-card--ad .ll-card__art{border-radius:12px;border:1px solid #25475e;background:linear-gradient(150deg,#12304a,#101d33)}
.ll-card--ad .ll-card__art.ll-adph{border-color:rgba(255,255,255,.06);background:var(--raised)}

/* ---- chip / tab ---- */
.ll-chips{display:flex;flex-wrap:wrap;gap:6px}
.ll-chip{display:inline-flex;align-items:center;min-height:36px;padding:6px 13px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font-size:max(12px,var(--ll-fmin,0px));cursor:pointer}
.ll-chip:hover{color:var(--text)}
/* Figma 短剧-02：选中 chip 底 #263051、字 #5C8DFF */
.ll-chip.is-active,.ll-chip[aria-pressed=true]{color:var(--accent);background:#263051}
@media (max-width:1023px){.ll-chip{min-height:44px;padding:9px 11px}}
.ll-filter{padding:16px;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);margin-bottom:20px}
.ll-filter__row{display:flex;gap:12px;align-items:flex-start}
.ll-filter__row+.ll-filter__row{margin-top:8px}
.ll-filter__label{flex:none;width:48px;padding-top:9px;font-size:max(12px,var(--ll-fmin,0px));color:var(--muted)}
.ll-count{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:5px;background:var(--surface);font-size:max(11px,var(--ll-fmin,0px))}
.is-active>.ll-count,.ll-tab.is-active .ll-count{background:var(--accent-soft);color:var(--accent)}
.ll-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto;scrollbar-width:none}
.ll-tab{padding:11px 0;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:max(15px,var(--ll-fmin,0px));cursor:pointer;white-space:nowrap}
.ll-tab:hover{color:var(--text)}
.ll-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}
@media (max-width:1023px){.ll-tab{min-height:44px;padding:0}}
.ll-seg{display:flex;padding:0;border-radius:30px;background:#4c4d5a} /* Figma 登录弹窗：分段底 #4C4D5A（比卡片亮），选中 #5C8DFF 实底 */
.ll-seg button{flex:1;height:38px;border:0;border-radius:30px;background:transparent;color:#e6e6ec;font-size:max(13px,var(--ll-fmin,0px));font-weight:500;cursor:pointer}
.ll-seg button.is-active{background:var(--grad-account);color:#fff}
@media (max-width:1023px){.ll-seg button{height:44px}}
.ll-periods{display:inline-flex;gap:8px}
.ll-periods button{height:44px;padding:0 22px;border:1px solid var(--line);border-radius:100px;background:transparent;color:var(--muted);font-size:max(14px,var(--ll-fmin,0px));cursor:pointer}
.ll-periods button.is-active{background:var(--accent);border-color:var(--accent);color:#04111b;font-weight:700}

/* ---- 分页（Figma 搜索结果-03 PC：40×40 深底细蓝边方块，当前页浅蓝底 + #5C8DFF 描边与文字，无跳页框；
        H5 搜索-01-c：约 26×26 小方块 #232338，当前页实心 #5C8DFF 白字，‹ 1 2 3 4 … 10 ›） ---- */
.ll-pager{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:30px}
.ll-pager a,.ll-pager span.ll-pager__n,.ll-pager button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border:1px solid rgba(92,141,255,.14);border-radius:8px;background:#0e1322;color:#f0f2f7;font-size:max(13px,var(--ll-fmin,0px));cursor:pointer} /* C-04 Figma 页码/上一页/下一页文字 #F0F2F7 */
.ll-pager a.ll-pager__step,.ll-pager span.ll-pager__step{min-width:76px}
.ll-pager a:hover{border-color:var(--accent);color:#fff}
/* 当前页：选择器必须 ≥ 上一行 `.ll-pager span.ll-pager__n`(0,2,1) 的特异性，否则高亮被普通底色盖回 */
.ll-pager .is-active,.ll-pager span.ll-pager__n.is-active{background:#212647;border-color:var(--accent);color:var(--accent);cursor:default}
.ll-pager .is-disabled,.ll-pager span.ll-pager__n.is-disabled,.ll-pager button:disabled{opacity:.45;pointer-events:none}
/* 上一页/下一页：PC 文字、H5 chevron 图标（.ll-pc-only/.ll-m-only 切换）。C-03：Figma H5 chevron 白色粗描边，第 1 页的上一页也保持亮色 */
.ll-pager__step .ll-m-only{font-size:max(15px,var(--ll-fmin,0px));line-height:1}
.ll-pager__chev{align-items:center;justify-content:center;width:12px;height:12px;flex:0 0 12px;border:0;transform:none;overflow:visible}
.ll-pager__chev svg{display:block;flex:none;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* 箭头由上面的 .ll-m-only 节点输出；页面级旧覆盖（::before 画箭头）一律关掉，避免出现两个箭头 */
.ll-pager>.ll-pager__step::before{content:none!important}
.ll-pager__dots{color:var(--muted);padding:0 2px}
.ll-pager__jump{display:none!important}
@media (max-width:1023px){.ll-pager{gap:4px;margin-top:20px;flex-wrap:nowrap}.ll-pager a,.ll-pager span.ll-pager__n,.ll-pager button{min-width:26px;height:26px;padding:0 6px;border:0;border-radius:4px;background:#232338;color:#a9acbb;font-size:12px}.ll-pager a.ll-pager__step,.ll-pager span.ll-pager__step{min-width:26px}.ll-pager .is-active,.ll-pager span.ll-pager__n.is-active{background:var(--accent);color:#fff}.ll-pager a.ll-pager__step,.ll-pager span.ll-pager__step{color:#fff}.ll-pager span.ll-pager__step.is-disabled{opacity:1}}

/* ---- 表单 ---- */
.ll-field{display:block;margin-bottom:14px;font-size:max(14px,var(--ll-fmin,0px));font-weight:600}
.ll-field>span:first-child{display:block;margin-bottom:10px}
.ll-field__opt{margin-left:2px;font-size:max(13px,var(--ll-fmin,0px));font-weight:400;color:#dedfe3}
/* Figma 登录弹窗：输入框 #4F4F60 实底无描边、全圆角、高 44；左侧白色实心图标 */
.ll-input{display:flex;align-items:center;gap:10px;height:44px;padding:0 16px;border:1px solid transparent;border-radius:28px;background:#4f4f60}
.ll-input:focus-within{border-color:rgba(92,141,255,.7)}
.ll-input svg{flex:none;width:14px;height:14px;color:#fff}
.ll-input input,.ll-input textarea{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#f5f6f8;font:max(14px,var(--ll-fmin,0px)) Arial,"Microsoft YaHei",sans-serif}
.ll-input input::placeholder{color:#a3a3b0}
.ll-input__eye{border:0;background:transparent;color:#e6e6ec;cursor:pointer;padding:0;display:grid;place-items:center}
.ll-input__eye svg{width:16px;height:16px;color:inherit}
.ll-input__eye.is-visible{opacity:.55}
.ll-field__err{display:none;margin-top:6px;font-size:max(12px,var(--ll-fmin,0px));font-weight:400;line-height:max(18px,calc(var(--ll-fmin,0px)*1.25));color:#f04a2f} /* 设计稿：输入框下方橙红小字，输入框边框不变红 */
.ll-field.has-error .ll-field__err{display:block}
.ll-hint{margin:0 0 12px;font-size:max(12px,var(--ll-fmin,0px));font-weight:500;color:#f3f3f5;text-align:center}
.ll-hint--blue{color:#77a6ff;text-align:left}
.ll-form-msg:empty{display:none}
.ll-form-msg{min-height:18px;margin:0 0 6px;font-size:max(12px,var(--ll-fmin,0px));font-weight:400;color:#f04a2f;text-align:center}

/* ---- 遮罩/弹窗通用 ---- */
.ll-overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto;background:rgba(2,8,19,.79);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
@media (max-width:1023px){.ll-overlay{z-index:90;padding:16px}}
.ll-dialog{position:relative;width:420px;max-width:calc(100% - 28px);padding:24px;border:1px solid var(--line);border-radius:var(--r-dialog);background:var(--surface);box-shadow:var(--sh-dialog)}
@media (max-width:1023px){.ll-dialog{padding:28px 22px;border-radius:14px}}
.ll-dialog h2{margin:0 0 13px;font-size:max(20px,var(--ll-fmin,0px));font-weight:700}
.ll-dialog p{margin:0;font-size:max(13px,var(--ll-fmin,0px));line-height:1.9;color:var(--muted)}
.ll-dialog__close{position:absolute;top:14px;right:16px;width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:max(22px,var(--ll-fmin,0px));line-height:1;cursor:pointer}
.ll-dialog__close:hover{background:var(--raised);color:var(--text)}
.ll-dialog__actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}
.ll-glass{border:1px solid rgba(255,255,255,.14);background:rgba(58,60,72,.62);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:0 20px 60px rgba(0,0,0,.533)}
.ll-modal{position:fixed;inset:0;z-index:10030;display:flex;align-items:center;justify-content:center;padding:16px}
.ll-modal__mask{position:absolute;inset:0;border:0;background:rgba(0,0,0,.733);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}
.ll-modal--history{z-index:10020}
/* Figma 首页-07/08：遮罩纯黑半透明压暗、无模糊；H5（首页-06~08）背后是不透明深色底 */
.ll-modal--history .ll-modal__mask{background:rgba(0,0,0,.74);-webkit-backdrop-filter:none;backdrop-filter:none}
@media (max-width:1023px){.ll-modal--history .ll-modal__mask{background:#151520}}

/* ---- 登录/注册（Figma 首页-05：毛玻璃卡片） ---- */
/* Figma 首页-05 用户登录（PC）：卡片 400 宽、上 35 / 左右 25 / 下 56；logo 约 119×58；标题 18px，距分段 40；按钮 40 高 */
.ll-auth{position:relative;width:min(400px,100%);padding:35px 25px 56px;border-radius:16px;color:#f4f4f6;font-family:Arial,"Microsoft YaHei",sans-serif;max-height:calc(calc(100*var(--ll-vh,1vh)) - 32px);overflow:auto}
.ll-auth__logo{display:block;height:56px;margin:0 auto 14px}
.ll-auth__title{margin:0 0 30px;font-size:max(18px,var(--ll-fmin,0px));line-height:max(24px,calc(var(--ll-fmin,0px)*1.25));font-weight:700;text-align:center;color:#fff}
.ll-auth .ll-modal-x,.ll-modal-x{position:absolute;right:20px;top:20px;width:32px;height:32px;border:1px solid #35373e;border-radius:50%;background:#22242a;color:#fff;font-size:max(20px,var(--ll-fmin,0px));line-height:1;cursor:pointer;padding:0}
.ll-auth .ll-seg{margin-bottom:16px}
.ll-auth .ll-field{margin-bottom:12px}
.ll-auth .ll-hint{margin:6px 0 14px}
.ll-auth .ll-hint--blue{margin:-4px 0 14px}
.ll-auth .ll-btn--auth{display:flex;width:100%;height:40px;border:0;border-radius:25px;background:var(--grad-account);color:#fff;font-size:max(13px,var(--ll-fmin,0px));font-weight:600;cursor:pointer;align-items:center;justify-content:center}
.ll-auth .ll-btn--auth:disabled{opacity:.6}
.ll-auth .ll-field{font-size:max(13px,var(--ll-fmin,0px));font-weight:700}
.ll-auth [data-ll-register]{display:none}
.ll-auth.is-register [data-ll-register]{display:block}
.ll-auth.is-register [data-ll-login-only]{display:none}

/* ---- 年龄门 / 已离开（Figma 首页-03/04） ---- */
html.ll-age-locked{overflow:hidden}
/* Figma 全站18岁确认/-1、已离开（A-07）：底层页面 50% 不透明 + backdrop blur(30px) + #15151E 64% 遮罩，合成后底层内容只剩约 18%，此处用单层 82% 等效 */
html.ll-age-locked::before{content:"";position:fixed;inset:0;z-index:2147483000;background:rgba(21,21,30,.82);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}
.ll-age{position:fixed;inset:0;z-index:2147483001;display:flex;align-items:center;justify-content:center;padding:16px;font-family:var(--font)}
/* Figma 首页-03/04：两张卡同宽 400；确认卡 400×354（上 30 / 左右 24 / 下 33），logo 约 119×58，按钮 40 高间距 15；已离开卡 400×246 */
.ll-age__card{width:min(400px,100%);padding:30px 24px 33px;border-radius:20px;text-align:center;color:#fff}
.ll-age__logo{display:block;height:58px;margin:0 auto 11px}
/* Figma 首页-03 高清（161% 实测）：标题 20px；正文两行 16px、行高 30（「本站包含…题材」≈240 宽）；按钮 43 高、字 14、间距 15；卡片无描边 */
.ll-age h2{margin:0 0 16px;font-size:max(20px,var(--ll-fmin,0px));line-height:max(28px,calc(var(--ll-fmin,0px)*1.25));font-weight:700}
.ll-age p{margin:0;font-size:max(16px,var(--ll-fmin,0px));line-height:max(30px,calc(var(--ll-fmin,0px)*1.25));color:rgba(255,255,255,.9)}
.ll-age p b{color:#5c8dff;font-weight:400} /* Figma：数字 18 为 #5C8DFF 常规字重 */
.ll-age__btns{display:flex;flex-direction:column;gap:15px;margin-top:24px}
.ll-age__card.ll-glass{border-color:transparent;background:rgba(116,116,147,.35)} /* Figma 卡片 #747493 35%（偏暖灰，A-07） */
.ll-age__btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:43px;border:0;border-radius:24px;font-size:max(14px,var(--ll-fmin,0px));font-weight:600;cursor:pointer;color:#fff}
.ll-age__btn--enter{background:var(--grad-account)}
.ll-age__btn--leave{background:rgba(255,255,255,.12);color:rgba(255,255,255,.8)}
.ll-age__btn--leave:hover{background:rgba(255,255,255,.18)}
.ll-age__left{width:min(400px,100%);padding-bottom:30px}
.ll-age__left h2{margin:31px 0 0;font-size:max(13px,var(--ll-fmin,0px));font-weight:500}
.ll-age__left .ll-age__btns{margin-top:36px}
.ll-age__left .ll-age__logo{height:53px;margin-bottom:0}

/* ---- 最近浏览（Figma 首页-07/08） ---- */
/* Figma 首页-07（PC）：面板 654 宽、底 #191925、圆角 12、内边距 28；两列卡片约 289 宽、列距 18 */
.ll-history{position:relative;width:min(654px,100%);max-height:min(calc(86*var(--ll-vh,1vh)),1080px);display:flex;flex-direction:column;padding:24px 28px 28px;border:1px solid #23232e;border-radius:12px;background:#191925;box-shadow:var(--sh-dialog)}
/* 面板有 max-height 且是纵向 flex：标题行/tab 行必须 flex:none，否则窄高视口（1440×900、1280×800）下 tab 行被压扁、「短剧/男同GV」被卡片盖住一半 */
.ll-history__head{flex:none;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.ll-history__head h2{margin:0;font-size:max(18px,var(--ll-fmin,0px));font-weight:600}
.ll-history__acts{display:flex;align-items:center;gap:8px}
.ll-history__acts .ll-btn{min-height:28px;height:28px;padding:0 12px;border-radius:4px;font-size:max(12px,var(--ll-fmin,0px));font-weight:400}
.ll-history .ll-tabs{flex:none;gap:25px;margin-bottom:18px;border-bottom-color:#2a2a38;overflow:visible}
.ll-history .ll-tab{font-size:max(13px,var(--ll-fmin,0px));padding:6px 0 8px}
.ll-history__list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 18px;padding-bottom:6px}
.ll-history__list.is-wide .ll-card__art{aspect-ratio:16/9}
.ll-history__list .ll-card__art{aspect-ratio:3/4}
.ll-history__list .ll-empty{grid-column:1/-1}
@media (max-width:1023px){
  .ll-history{width:100%;max-height:calc(100vh - 32px);padding:18px 12px 16px;border-color:#22222e;border-radius:12px}
  .ll-history__head h2{font-size:16px}
  .ll-history__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}
}

/* ---- Toast（2s） ---- */
.ll-toast{position:fixed;left:50%;bottom:28px;z-index:10050;transform:translate(-50%,10px);opacity:0;max-width:calc(100% - 32px);padding:10px 20px;border:1px solid var(--line);border-radius:8px;background:#f2f5fa;color:#090e17;font-size:max(13px,var(--ll-fmin,0px));white-space:nowrap;box-shadow:0 6px 30px rgba(0,0,0,.2);pointer-events:none;transition:opacity .2s,transform .2s}
.ll-toast.is-show{opacity:1;transform:translate(-50%,0)}
@media (max-width:1023px){.ll-toast{bottom:70px;white-space:normal;text-align:center;font-size:12px;padding:10px 16px}}

/* ---- 空态 / 骨架 / 加载 ---- */
.ll-empty{padding:65px 20px;text-align:center;border:1px dashed var(--line);border-radius:var(--r-panel);color:var(--muted)}
.ll-empty__sym{margin-bottom:15px;font-size:max(40px,var(--ll-fmin,0px));line-height:1.2;color:var(--accent);opacity:.5}
.ll-empty h2{margin:0 0 7px;font-size:max(19px,var(--ll-fmin,0px));font-weight:700;color:var(--text)}
.ll-empty p{margin:0;font-size:max(13px,var(--ll-fmin,0px))}
.ll-empty .ll-btn{margin-top:20px}
.ll-empty--plain{border:0}
@media (max-width:1023px){.ll-empty{padding:38px 16px}.ll-empty h2{font-size:17px}}
.ll-skeleton{position:relative;overflow:hidden;background:var(--raised);border-radius:6px}
.ll-skeleton::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);transform:translateX(-100%);animation:ll-shimmer 1.4s infinite}
.ll-skeleton--line{height:12px;margin-top:10px}
.ll-skeleton--line.w60{width:60%}
@keyframes ll-shimmer{to{transform:translateX(100%)}}
.ll-spinner{display:inline-block;width:33px;height:33px;border:3px solid rgba(255,255,255,.196);border-top-color:var(--blue);border-radius:50%;animation:ll-spin .8s linear infinite}
@keyframes ll-spin{to{transform:rotate(360deg)}}

/* ---- 广告位占位 ---- */
.ll-ad{position:relative;display:block;overflow:hidden;color:#fff}
.ll-ad__tag{position:absolute;top:6px;right:6px;z-index:2;padding:3px 10px;border-radius:4px;background:rgba(0,0,0,.55);font-size:max(12px,var(--ll-fmin,0px));line-height:1.3}
/* 蓝果 logo 占位（SSP 未开启/未登记时）：站点深色卡片底 + 居中 logo + 右上「广告」角标，不可点击 */
.ll-adph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(255,255,255,.06);border-radius:8px;background:var(--raised);color:#fff;cursor:default;user-select:none}
.ll-adph>img{display:block;flex:none;pointer-events:none;-webkit-user-drag:none}
.ll-adph>em{font-style:normal;font-size:max(11px,var(--ll-fmin,0px));font-weight:600;line-height:1.2;color:#dfe9f4;white-space:nowrap}
/* 横幅：UI 稿 1920 画板单张 748×139、两张并排间距 20、圆角 8；H5 一列 358×85、间距 8、圆角 6 */
.ll-adph-banners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
.ll-adph--banner{width:100%;aspect-ratio:748/139}
.ll-adph--banner>img{width:auto;height:40%;max-width:60%}
/* 信息流广告格：与相邻卡同比例，带字 logo 居中 */
.ll-adph--card>img{width:62%;height:auto}
.ll-card--wide .ll-adph--card>img{width:auto;height:30%}
.ll-adph--card::after{content:none}
@media (max-width:1023px){.ll-adph-banners{grid-template-columns:minmax(0,1fr);gap:8px;margin:18px 0}.ll-adph--banner{aspect-ratio:358/85;border-radius:6px}}
.ll-ad-squares{display:flex;gap:10px;margin-bottom:28px;overflow:hidden}
.ll-ad-square{flex:1 1 0;max-width:82px;min-width:56px;aspect-ratio:1}
.ll-ad-square>img{width:40%;height:auto}
.ll-ad-square .ll-ad__tag{top:3px;right:3px;padding:1px 4px;font-size:max(9px,var(--ll-fmin,0px))}
@media (max-width:1023px){.ll-ad-squares{overflow-x:auto;scrollbar-width:none}.ll-ad-square{flex:0 0 56px}}
.ll-ad-feed{border-radius:12px}
.ll-ssp{width:100%;overflow:hidden}

@media (max-width:340px){.ll-pager{gap:4px;flex-wrap:wrap}}
/* Figma：「清除记录」灰色细边小圆角 + 灰字；关闭为圆角方形灰边按钮，内为 ⊙ 圆圈图标 */
.ll-history__acts .ll-btn{background:transparent;border-color:#33333f;color:#9a9aa6}
.ll-history__acts .ll-btn:hover{border-color:#4a4a58;color:#d8d8e0;filter:none}
.ll-history__acts .ll-iconbtn2{width:32px;min-width:32px;height:32px;border:1px solid #33333f;border-radius:6px;color:#a6a6b2;line-height:1}
.ll-history__acts .ll-iconbtn2 svg{width:14px;height:14px}
@media (max-width:1023px){.ll-history__acts .ll-btn{min-height:28px}.ll-history__acts .ll-iconbtn2{width:28px;min-width:28px;height:28px}}
.ll-empty__art{display:block;margin:0 auto 14px;width:96px;height:96px}
.ll-empty--hist{padding:36px 16px 34px}
.ll-empty--hist .ll-empty__art{width:110px;height:110px;margin-bottom:22px}
.ll-empty--hist h2{font-size:max(13px,var(--ll-fmin,0px));font-weight:500;color:#e3e3ea}
@media (max-width:1023px){.ll-empty--hist .ll-empty__art{width:64px;height:64px;margin-bottom:12px}.ll-empty--hist h2{font-size:11px}}
/* 空态插画：吉祥物（ll/empty "Mascot" true）+ 右下角标 ?/!；错误态（"Kind" "error"）红色调 */
.ll-empty__mascot{position:relative;display:block;width:76px;height:76px;margin:0 auto 16px}
.ll-empty__mascot img{display:block;width:76px;height:76px;filter:drop-shadow(0 8px 18px rgba(92,141,255,.28))}
.ll-empty__mascot i{position:absolute;right:-6px;bottom:2px;display:grid;place-items:center;width:26px;height:26px;border:2px solid var(--bg);border-radius:50%;background:#1d3b56;color:#9fdcff;font:700 max(14px,var(--ll-fmin,0px))/1 var(--font)}
.ll-empty--error .ll-empty__mascot i{background:#5a2a33;color:#ffb3b8}
.ll-empty--error .ll-empty__sym{color:var(--danger)}
@media (max-width:1023px){.ll-empty__mascot,.ll-empty__mascot img{width:64px;height:64px}}

/* 搜索无结果插画（Figma 搜索-05 吉祥物探出纸箱） */
.ll-empty__art.llb-empty__art{width:140px;height:120px;margin-bottom:16px}
@media (max-width:1023px){.ll-empty__art.llb-empty__art{width:112px;height:96px}}

/* ---- H5 年龄确认（Figma H5 首页-01 高清：卡 350 宽、左右 20、下 49；标题 ≈19px；正文 16px 行高 31；按钮 43 高间距 14） ---- */
@media (max-width:1023px){
  .ll-age__card{width:min(350px,100%);padding:30px 20px 49px}
  .ll-age h2{font-size:19px}
  .ll-age p{line-height:31px}
  .ll-age__btns{gap:14px}
  .ll-age__left{padding-bottom:30px}
}

/* ---- 登录/注册尺寸（Figma 高清：PC 与 H5 稿输入框、提交按钮都是 ≈42.5 高；H5 稿卡片 351 宽、上下 30 / 左右 20、
        logo ≈81×40、标题 20px、分段 36 高 13px、标签/输入 14px、提示 12px，登录态卡片总高 ≈465） ---- */
.ll-auth .ll-input{height:42px}
.ll-auth .ll-btn--auth{height:42px;font-size:max(14px,var(--ll-fmin,0px))}
@media (max-width:1023px){
  .ll-auth{width:min(351px,100%);padding:30px 20px}
  .ll-auth__logo{height:40px;margin:0 auto 10px}
  .ll-auth__title{margin:0 0 30px;font-size:20px;line-height:28px}
  .ll-auth .ll-seg{margin-bottom:18px}
  .ll-auth .ll-seg button{height:36px;font-size:13px}
  .ll-auth .ll-field{margin-bottom:16px;font-size:14px}
  .ll-auth .ll-field>span:first-child{margin-bottom:10px;line-height:20px}
  .ll-auth .ll-input input{font-size:16px} /* iOS 聚焦放大阈值 16px（稿 14px），见 languo.css 末尾 fix/ios-zoom */
  .ll-auth .ll-hint{margin:-2px 0 15px;font-size:12px;line-height:18px}
  .ll-auth .ll-hint--blue{margin:-6px 0 12px}
}
/* H5：Figma 年龄确认卡 350、登录卡 351（375 画板左右各留 ≈12） */
@media (max-width:1023px){.ll-age,.ll-modal[data-ll-auth]{padding-left:12px;padding-right:12px}}
.ll-auth.ll-glass{border-color:transparent} /* Figma 高清：登录卡与年龄卡一样无描边 */

/* ==== R2 fix3「首页与全局框架」：H5 年龄确认 / 已离开 / 最近浏览按 Figma H5 首页-01/04/06/07/08 对齐 ==== */
@media (max-width:1023px){
  /* G3-01 H5 首页-01：logo ≈81×40（与 H5 登录弹窗同尺寸），logo 底到标题 ≈9，卡片总高 ≈356；卡片圆角保持 16（PC 稿 20） */
  .ll-age__card{border-radius:16px}
  .ll-age__card[data-ll-age-confirm] .ll-age__logo,.ll-age__card:not(.ll-age__left) .ll-age__logo{height:40px;margin-bottom:9px}
  /* 用户定：强调色全站统一 #5C8DFF */
  .ll-age p b{color:#5c8dff}
  /* A-06 Figma 全站18岁确认（H5）：第 1 行白色 16px/500，第 2 行 14px 常规 */
  .ll-age__card[data-ll-age-confirm] p{color:rgba(255,255,255,.9)}
  .ll-age__card[data-ll-age-confirm] p:first-of-type{font-weight:500;color:#fff}
  .ll-age__card[data-ll-age-confirm] p:first-of-type+p{font-size:14px}
  /* G3-02 H5 首页-04：logo ≈117 宽（高 57）、标题 15px，logo 底→标题中心 ≈49、标题中心→按钮顶 ≈40 */
  .ll-age__left .ll-age__logo{height:57px}
  .ll-age__left h2{margin-top:35px;font-size:15px;line-height:28px;font-weight:500}
  .ll-age__left .ll-age__btns{margin-top:26px}
  /* G3-04 H5 首页-06/07/08：面板上 12 / 左右 14；标题顶→tab 文字中心 ≈43、tab 下划线→首行卡片 ≈14；tab 字 12（G3-11） */
  .ll-history{padding:12px 14px 16px}
  /* fix4 H5 首页-06：面板距屏幕左右 12（宽 ≈351），卡片 x≈27.5 */
  .ll-modal--history{padding-left:12px;padding-right:12px}
  .ll-history__head{margin-bottom:6px}
  .ll-history .ll-tabs{margin-bottom:14px}
  .ll-history .ll-tab{min-height:0;padding:4px 0 7px;font-size:12px;line-height:17px}
  /* 用户定：强调色全站统一 #5C8DFF */
  .ll-history .ll-tab.is-active{color:#5c8dff;border-bottom-color:#5c8dff}
  /* G3-05 H5 首页-06（卡宽 ≈154）：原创角标 ≈32×17、字 ≈11；评分 ≈51×17；集数胶囊 ≈77×18、字 ≈11.5 —— 仍按卡宽 cqw 等比 */
  .ll-history__list .ll-badge{height:11cqw;padding:0 3.4cqw;border-radius:999px;font-size:7.1cqw}
  .ll-history__list .ll-card__score{height:11cqw;padding:0 2.6cqw;font-size:7.1cqw}
  .ll-history__list .ll-card__score::before{width:9cqw;height:9cqw}
  .ll-history__list .ll-card__ep{height:11.7cqw;padding:0 3.9cqw;border-radius:3cqw;font-size:7.5cqw;line-height:11.7cqw}
  /* G3-11 H5 首页-08 空态：面板总高 ≈372，插画 64、距 tab 下划线 ≈92，「暂无浏览记录」≈9px */
  .ll-empty--hist{padding:78px 16px 100px}
  .ll-empty--hist .ll-empty__art{width:64px;height:64px;margin-bottom:4px}
  .ll-empty--hist h2{margin:0;font-size:9px;line-height:13px}
}
/* E-04：最近浏览面板固定等高规则见文件后部「最近浏览固定等高（2026-10-23 恢复）」段（用户要求优先于 Figma「面板随内容」）。 */

/* 2026-10-22 PC 等比缩放配套：窄屏时字号被托底到 12px（相对布局放大），定宽的短标签不能被挤成竖排 */
@media (min-width:1024px){.ll-filter__label{min-width:max-content;white-space:nowrap}}

/* ==== B5-U4（2026-10-22）：确认弹窗 / 最近浏览按 Figma 原始 SVG 量取 ==== */
/* E-01 / F1-02 通用确认弹窗 .ll-confirm（languo.js confirmBox 恒带）。
   PC（Figma 确认删除 / 确认删除-1，458×254 画框内 400×172 卡片）：底 #191925、1px 白 10% 描边、圆角 16、内边距 24；
   标题 18px 行高 28 左对齐，× 为 10×10 细线（线宽 1.5）与标题同一水平线、距右 29；正文 14px 浅白左对齐；
   按钮右对齐 91×36 全圆角、间距 15、字 12：取消 白 10% 底、确认删除 #5C8DFF。
   H5（Figma 确认删除-2，÷2）：卡片 350 宽（屏幕左右各 12.5）、背景纯 #151522；标题 16px 居中、正文 12px 居中；
   两个等宽满宽胶囊 155.5×36、间距 15；上 21 / 标题后 16.5 / 正文后 18 / 下 19。 */
.ll-dialog.ll-confirm{width:400px;max-width:calc(100% - 28px);padding:23px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:#191925;box-shadow:none;color:#fff;text-align:left}
.ll-dialog.ll-confirm h2{margin:0;padding-right:36px;font-size:max(18px,var(--ll-fmin,0px));font-weight:500;line-height:max(28px,calc(var(--ll-fmin,0px)*1.4));color:#fff}
.ll-dialog.ll-confirm p{margin:20px 0 0;font-size:max(14px,var(--ll-fmin,0px));line-height:max(20px,calc(var(--ll-fmin,0px)*1.4));color:#f1f2f7}
.ll-dialog.ll-confirm .ll-dialog__close{display:grid;place-items:center;top:23px;right:19px;width:28px;height:28px;padding:0;border-radius:0;background:transparent;color:#fff}
.ll-dialog.ll-confirm .ll-dialog__close svg{width:12px;height:12px}
.ll-dialog.ll-confirm .ll-dialog__close:hover{background:transparent;color:#fff}
@media (hover:hover){.ll-dialog.ll-confirm .ll-dialog__close:hover{color:#5c8dff}}
.ll-dialog.ll-confirm .ll-dialog__actions{justify-content:flex-end;gap:15px;margin-top:20px}
.ll-dialog.ll-confirm .ll-dialog__actions .ll-btn{flex:none;width:91px;min-height:36px;height:36px;padding:0;border:0;border-radius:18px;font-size:max(12px,var(--ll-fmin,0px));font-weight:600;color:#fff}
.ll-dialog.ll-confirm [data-c]{background:rgba(255,255,255,.1)}
.ll-dialog.ll-confirm [data-ok]{background:#5c8dff}
@media (max-width:1023px){
  .ll-overlay--confirm{padding:0 12.5px;background:#151522;-webkit-backdrop-filter:none;backdrop-filter:none}
  .ll-dialog.ll-confirm{width:100%;max-width:350px;padding:20px 11px 18px;text-align:center}
  .ll-dialog.ll-confirm h2{padding:0 30px;font-size:16px;font-weight:600;line-height:22px}
  .ll-dialog.ll-confirm p{margin-top:16.5px;font-size:12px;line-height:18px}
  .ll-dialog.ll-confirm .ll-dialog__close{top:17px;right:7px;width:28px;height:28px}
  .ll-dialog.ll-confirm .ll-dialog__close::after{content:"";position:absolute;inset:-8px}
  .ll-dialog.ll-confirm .ll-dialog__actions{gap:15px;margin-top:18px}
  .ll-dialog.ll-confirm .ll-dialog__actions .ll-btn{position:relative;flex:1;width:auto;font-size:12px;font-weight:700}
  .ll-dialog.ll-confirm .ll-dialog__actions .ll-btn::after{content:"";position:absolute;inset:-4px 0}
}
/* E-03 最近浏览关闭：Figma ⊗（圆 r5 + 叉臂 1.5，线宽 1）白色，按钮框仍为 32/28 圆角细边 */
.ll-history__acts .ll-history__x{color:#fff}
.ll-history__acts .ll-history__x svg{width:12px;height:12px}
/* E-02 最近浏览空态插画（Figma 最近浏览-空数据-1 / 最近浏览-空数据 矢量原样导出 images/ll/empty-history.svg，112 视框）：
   PC 插画 110×108、顶距 tab 分隔线 61、「暂无浏览记录」13px 中线距插画底 32、文字底到面板底约 60（面板总高 380）；
   H5 插画 60、顶距分隔线 94、文字 9px、面板总高约 375。 */
.ll-empty--hist{padding:44px 16px 34px}
.ll-empty--hist .ll-empty__art{width:112px;height:112px;margin:0 auto 24px}
.ll-empty--hist h2{margin:0;font-size:max(13px,var(--ll-fmin,0px));font-weight:500;line-height:18px;color:#fff}
@media (max-width:1023px){
  .ll-empty--hist{padding:80px 16px 108px}
  .ll-empty--hist .ll-empty__art{width:61px;height:61px;margin-bottom:5px}
  .ll-empty--hist h2{font-size:9px;line-height:13px}
}

/* ==== 最近浏览固定等高（2026-10-23 恢复，te-1792704324-7517ac）====
   2026-10-22 用户要求「最近浏览」弹窗固定等高：切换「短剧 / 男同GV」页签、有数据或无数据时弹窗尺寸与位置不变。
   B5-U4（3405e69）按 Figma E-04「面板高度随内容」误删了这组规则，PC 与 H5 一起回归；2026-10-23 恢复，用户要求优先于 Figma E-04。
   策略（PC 与 H5 相同）：面板固定为视口 86% 高（PC 另封顶 1080），.ll-modal--history 为 flex 居中，高度固定则 top 固定；
   列表区 .ll-history__list 为 flex:1 内部滚动；空态 .ll-empty--hist（grid-column:1/-1）在列表区垂直居中，内部尺寸仍按 Figma。 */
.ll-history{height:min(calc(86*var(--ll-vh,1vh)),1080px)}
.ll-history__list:has(> .ll-empty){align-content:center;padding-bottom:0} /* 列表区底 6px 留白只为卡片滚动到底用，空态时去掉，否则居中偏上 3px */
@media (max-width:1023px){
  .ll-history{height:86vh;height:86dvh;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px)}
}

/* B5 合并：头像 20 色 Figma 渐变端点 token（与 languo.js AVATAR_GRAD / Go AvatarSwatches 同源），供播放页评论头像 .lw-avatar[data-av]（ll-c.css）等按 --av-top/--av-bot 引用 */
[data-av="#D94754" i]{--av-top:#E36B75;--av-bot:#D02533}
[data-av="#9CEE5C" i]{--av-top:#B0FA8F;--av-bot:#8AE32B}
[data-av="#4AC7FD" i]{--av-top:#87DBFF;--av-bot:#0CB3FB}
[data-av="#8C77DE" i]{--av-top:#A695E5;--av-bot:#7459D9}
[data-av="#EE5A9F" i]{--av-top:#EC78AF;--av-bot:#EF3B90}
[data-av="#46D9BC" i]{--av-top:#69C8CC;--av-bot:#24E9AE}
[data-av="#FE793D" i]{--av-top:#FFA76E;--av-bot:#FF4C0B}
[data-av="#585858" i]{--av-top:#8C8C8C;--av-bot:#262626}
[data-av="#E9A72D" i]{--av-top:#FFC55A;--av-bot:#D48A00}
[data-av="#A2C72B" i]{--av-top:#A7C252;--av-bot:#9DCD06}
[data-av="#52C864" i]{--av-top:#4BB17D;--av-bot:#55DD4B}
[data-av="#76F1D5" i]{--av-top:#BEFFF0;--av-bot:#33E6BC}
[data-av="#FAA599" i]{--av-top:#FFCEC7;--av-bot:#F67E6D}
[data-av="#87AAFF" i]{--av-top:#AEC6FF;--av-bot:#6290FF}
[data-av="#9281EB" i]{--av-top:#BBAEFF;--av-bot:#6B56D9}
[data-av="#CE8BF9" i]{--av-top:#E7C2FF;--av-bot:#B757F5}
[data-av="#EC70E3" i]{--av-top:#FFB2FA;--av-bot:#DA32CF}
[data-av="#FC70A1" i]{--av-top:#FF90B6;--av-bot:#FA538D}
[data-av="#F09E68" i]{--av-top:#FFBF95;--av-bot:#E37F3E}
[data-av="#46565E" i]{--av-top:#6D8592;--av-bot:#21282C}

/* ==== fix-shell 2026-10-23：全站外壳弹层按最新 Figma 定点对齐（差异清单逐条，数值取 Figma 节点 / 1:1 渲染图量取） ==== */
/* 18 岁确认 158:42043（PC 400×354，内边距 30/24/30/24，无投影无描边）/ 142:31380（H5 350，按钮 310×43）：
   标题 158:42048 Semibold 20 #F7F7F8；按钮 158:42052/42054 Medium 14、继承站点字体；次按钮 158:42053 #FFF 10% 底白字；按钮间距 14 */
.ll-age button{font-family:inherit}
.ll-age__card.ll-glass{border:0;box-shadow:none}
.ll-age__card{padding-bottom:30px}
.ll-age h2{font-weight:600;color:#f7f7f8}
.ll-age__btns{gap:14px}
.ll-age__btn{font-weight:500}
.ll-age__btn--leave{background:rgba(255,255,255,.1);color:#fff}
.ll-age__card:not(.ll-age__left) .ll-age__logo{margin-bottom:8px} /* 158:42042 渲染图：卡顶 → 标题行盒 96.5、正文 140、主按钮 224 */
@media (max-width:1023px){.ll-age__card[data-ll-age-confirm] p:first-of-type{font-weight:400}}

/* 登录 / 注册 158:42066（PC 400 宽，r20，#747493 35%，无投影无描边；登录态 515 高、错误态 531、注册态 694）/ 142:34797（H5 350×465，r16）
   顶 31 → logo 123×58 → 9 → 标题 20/31 Bold #F4F4F6 → 34 → 分段 37（#FFF 8%）→ 18 → 标签 14/20 Bold → 6 → 输入 43（图标 16，距卡左 39）→ 14 → …
   登录态：提示 12/18 → 14 → 按钮 43 → 底 55；注册态：蓝字提示 → 13 →「注册成功后将自动登录」14/20 Medium 白 → 15 → 按钮 → 底 34。
   遮罩与 18 岁确认同款：#15151E 82% + 背景模糊 30，底层页面基本看不清。 */
.ll-modal[data-ll-auth] .ll-modal__mask{background:rgba(21,21,30,.82);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}
.ll-auth.ll-glass{border:0;border-radius:20px;background:rgba(116,116,147,.35);box-shadow:none}
.ll-auth{padding:31px 24px 34px}
.ll-auth__logo{height:58px;margin:0 auto 9px}
.ll-auth__title{margin:0 0 34px;font-size:max(20px,var(--ll-fmin,0px));line-height:max(31px,calc(var(--ll-fmin,0px)*1.4));color:#f4f4f6}
.ll-auth .ll-seg{margin-bottom:18px;background:rgba(255,255,255,.08)}
.ll-auth .ll-seg button{height:37px}
.ll-auth .ll-field{margin-bottom:14px;font-size:max(14px,var(--ll-fmin,0px))}
.ll-auth .ll-field>span:first-child{margin-bottom:6px;line-height:max(20px,calc(var(--ll-fmin,0px)*1.4))}
.ll-auth .ll-input{height:43px;padding:0 16px 0 14px}
.ll-auth .ll-input>svg{width:16px;height:16px}
.ll-auth .ll-btn--auth{height:43px}
.ll-auth .ll-field__err{margin-top:0;line-height:max(16px,calc(var(--ll-fmin,0px)*1.3));color:#e34b25}
.ll-auth .ll-hint{margin:15px 0 14px;line-height:max(18px,calc(var(--ll-fmin,0px)*1.4))}
.ll-auth .ll-hint--blue{margin:15px 0 13px}
.ll-auth .ll-hint[data-ll-register]:not(.ll-hint--blue){margin:0 0 15px;font-size:max(14px,var(--ll-fmin,0px));line-height:max(20px,calc(var(--ll-fmin,0px)*1.4));color:#fff}
.ll-auth:not(.is-register) .ll-btn--auth{margin-bottom:21px}
@media (max-width:1023px){
  .ll-auth.ll-glass{border-radius:16px}
  .ll-auth{width:min(350px,100%);padding:30px 20px}
  .ll-auth__logo{height:40px;margin:0 auto 10px}
  .ll-auth__title{margin:0 0 30px;font-size:20px;line-height:28px}
  .ll-auth .ll-seg{margin-bottom:15px}
  .ll-auth .ll-seg button{height:36px}
  .ll-auth .ll-field{margin-bottom:16px}
  .ll-auth .ll-field>span:first-child{margin-bottom:10px;line-height:20px}
  .ll-auth .ll-input,.ll-auth .ll-btn--auth{height:42px}
  /* Figma H5 提示文案 28px ÷ 2，输入值仍保留 16px 以避免 iOS 聚焦放大。 */
  .ll-auth .ll-input input::placeholder{font-size:14px;opacity:1}
  .ll-auth .ll-hint{margin:-5.5px 0 15px;line-height:18px}
  .ll-auth .ll-hint--blue{margin:-6px 0 12px}
  .ll-auth .ll-hint[data-ll-register]:not(.ll-hint--blue){margin:-2px 0 15px;font-size:14px;line-height:20px}
  .ll-auth:not(.is-register) .ll-btn--auth{margin-bottom:0}
}

/* 登录/注册卡片右上角关闭按钮（用户 2026-10-23：H5 注册态卡片几乎铺满屏幕，遮罩可点区域太少）。
   透明圆形 ×：可点区域 44×44，视觉圆 32（白 8% 底）、图标 16（白 60%），hover/按下变亮；视觉圆距卡片顶/右各 12。
   放在卡片（滚动容器）首位 + position:sticky：卡片超出视口内部滚动时按钮钉在可视区右上角（Chromium/WebKit 的 sticky 参照区扣除了滚动容器内边距，故 top 也减去上内边距）；
   负外边距抵消占位，不改变 logo/标题原有位置。--ll-auth-pt/--ll-auth-pr 与卡片上/右内边距保持一致。 */
.ll-auth{--ll-auth-pt:31px;--ll-auth-pr:24px}
.ll-auth__close{position:-webkit-sticky;position:sticky;top:calc(6px - var(--ll-auth-pt));z-index:3;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:calc(6px - var(--ll-auth-pt)) calc(6px - var(--ll-auth-pr)) calc(var(--ll-auth-pt) - 50px) auto;padding:0;border:0;border-radius:50%;background:transparent;color:rgba(255,255,255,.6);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .15s}
.ll-auth__close::before{content:"";position:absolute;inset:6px;border-radius:50%;background:rgba(255,255,255,.08);transition:background-color .15s}
.ll-auth__close svg{position:relative;display:block;width:16px;height:16px}
.ll-auth__close:hover,.ll-auth__close:active,.ll-auth__close:focus-visible{color:#fff}
.ll-auth__close:hover::before{background:rgba(255,255,255,.16)}
.ll-auth__close:active::before{background:rgba(255,255,255,.22)}
.ll-auth__close:focus{outline:0}
.ll-auth__close:focus-visible::before{box-shadow:0 0 0 2px rgba(92,141,255,.9)}
@media (max-width:1023px){.ll-auth{--ll-auth-pt:30px;--ll-auth-pr:20px}}

/* 最近浏览 158:45586（PC 650 宽）/ 142:35084（H5 r16）：面板高度保持「固定等高」（用户 2026-10-22 要求优先于 Figma 随内容）。
   标题 158:45588 Semibold 20 白；清除记录 158:45591 Medium 12 #858585 r6；tab 158:45597/45600 14px 选中 Semibold #5C8DFF、未选中 Regular #858585；
   tab 行距面板顶 80、列表距面板顶 135；集数胶囊 158:45613 26 高 r15 Bold 14；空态文字 158:42041 Semibold 14 白。
   H5：tab 行距面板顶 53、tab 间距 20、选中 Semibold（强调色按用户定统一 #5C8DFF）；空态文字放大到 12（稿 8 真机看不清）。 */
.ll-history{width:min(650px,100%)}
.ll-history__head h2{color:#fff}
.ll-history__acts .ll-btn{border-radius:6px;font-weight:500;color:#858585}
.ll-history .ll-tab{color:#858585}
.ll-history .ll-tab.is-active{color:#5c8dff;font-weight:600}
.ll-empty--hist h2{font-size:max(14px,var(--ll-fmin,0px));font-weight:600;line-height:20px}
@media (min-width:1024px){
  .ll-history__head{margin-bottom:23px}
  .ll-history__head h2{font-size:max(20px,var(--ll-fmin,0px))}
  .ll-history .ll-tab{font-size:max(14px,var(--ll-fmin,0px))}
  .ll-history .ll-tabs{margin-bottom:19px}
  .ll-history__list .ll-card__ep{height:26px;padding:0 12.5px;border-radius:15px;font-size:max(14px,var(--ll-fmin,0px));font-weight:700;line-height:26px}
}
@media (max-width:1023px){
  .ll-history{border-radius:16px}
  .ll-history__head{margin-bottom:12px}
  .ll-history .ll-tabs{gap:20px}
  .ll-empty--hist h2{font-size:12px;line-height:17px}
}

/* 通用确认框 131:13196 / 133:25499（PC）：标题 Semibold 18 #E8EDF4、正文 Medium 14 #E8EDF4；关闭 20×28 内 10×10 细线 ×（中心不变）。
   190:70183（H5）：卡片 r8；标题框 302 宽（右侧让出关闭按钮）文字居中；正文 Medium 12 #E8EDF4（渲染图正文行盒距卡顶 60，原间距已对，不动）。 */
.ll-dialog.ll-confirm h2{font-weight:600;color:#e8edf4}
.ll-dialog.ll-confirm p{font-weight:500;color:#e8edf4}
.ll-dialog.ll-confirm .ll-dialog__close{width:20px;right:23px}
.ll-dialog.ll-confirm .ll-dialog__close svg{width:10px;height:10px}
@media (max-width:1023px){
  .ll-dialog.ll-confirm{border-radius:8px}
  .ll-dialog.ll-confirm h2{padding:0 24px 0 0}
  .ll-dialog.ll-confirm .ll-dialog__close{width:28px;right:7px}
}

/* 分页器 158:43269 / 158:43271（PC）：上一页/下一页 78×40、页码 40×40、r9、Noto Sans SC Medium 14、未选中描边 #252648；
   禁用「上一页」文字 #646971、描边 #161B2A（不再用整体半透明，避免文字仍是亮白） */
@media (min-width:1024px){
  .ll-pager a,.ll-pager span.ll-pager__n,.ll-pager button{border-color:#252648;border-radius:9px;font-size:max(14px,var(--ll-fmin,0px));font-weight:500}
  .ll-pager a.ll-pager__step,.ll-pager span.ll-pager__step{min-width:78px}
  .ll-pager .is-active,.ll-pager span.ll-pager__n.is-active{border-color:var(--accent)}
  .ll-pager span.ll-pager__n.is-disabled{opacity:1;color:#646971;border-color:#161b2a}
}

/* ==== fix-shell-r2 2026-10-23：复验差异清单定点修复（数值取 Figma 节点） ==== */
/* 最近浏览：面板仍固定等高（用户 2026-10-22 要求），但列表网格行不再被拉伸——只有 1 条记录时卡片保持自身高度贴顶排列，
   不会被 grid 默认 align-content:stretch 拉成 287×758；空态仍由 :has(> .ll-empty) 规则垂直居中 */
.ll-history__list{align-content:start}
/* 18 岁确认 158:42049 / 142:31372 说明文字 #FFFFFF（不透明） */
.ll-age p,.ll-age__card[data-ll-age-confirm] p{color:#fff}
/* 登录错误态 158:42122（PC）：错误文字 158:42137 距输入框 5、行高 17（PingFang 12 / 100%），下一字段标签距输入框底 39（卡顶 326）；
   稿面错误态卡片 531（正常态 515 + 16），按钮下留白由 55 收到 45。H5 142:35052：错误文字距输入框 5.5、密码标签距输入框底 36.5 */
.ll-auth .ll-field__err{margin-top:5px;margin-bottom:0;padding-bottom:3px;line-height:17px} /* 底部用 padding：margin 会与 .ll-field 的 14 外边距折叠 */
@media (min-width:1024px){.ll-auth:not(.is-register):has(.ll-field.has-error) .ll-btn--auth{margin-bottom:12px}}
@media (max-width:1023px){.ll-auth .ll-field__err{margin-top:5.5px;margin-bottom:-2px;padding-bottom:0}} /* 与字段外边距 16 折叠后为 14 */
/* 注册态蓝字提示 158:42195：#5C8DFF PingFang Regular 12 */
.ll-hint--blue,.ll-auth .ll-hint--blue{color:#5c8dff;font-weight:400}
/* 登录弹窗打开后焦点落在对话框容器（languo.js），容器本身不画聚焦框 */
.ll-auth[data-ll-auth-card]:focus{outline:none}
@media (max-width:1023px){
  /* 142:31366 H5 卡片 350×360：内容区距卡顶 30、次按钮底到卡底 49.5（此前被通用 padding-bottom:30px 覆盖） */
  .ll-age__card:not(.ll-age__left){padding-bottom:49.5px}
  /* 同稿：标题行盒距卡顶 79、说明文字 125.5 起两行共 61（行高 30）、主按钮 210.5、次按钮 267.5 */
  .ll-age__card:not(.ll-age__left) h2{margin-bottom:19.5px}
  .ll-age__card:not(.ll-age__left) p{line-height:30.5px}
  .ll-age__card[data-ll-age-confirm] p{color:#fff}
  /* 142:34798 H5 标题 PingFang Semibold 20 */
  .ll-auth__title{font-weight:600}
}
/* ==== fix/ios-zoom 2026-10-23：H5 登录/注册弹窗小屏适配 ====
   iOS 上 100vh = 地址栏收起时的高度，比可见区高，卡片底部（注册按钮）被切；先写 vh 兜底再用 dvh（不支持 dvh 的浏览器忽略第二条）。
   卡片内部滚动时不把滚动串到底层页面（overscroll-behavior:contain），键盘弹起时 languo.js 把聚焦输入框滚到卡片可见区中间。 */
@media (max-width:1023px){
  .ll-modal[data-ll-auth]{padding-top:12px;padding-bottom:12px}
  .ll-auth{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}

/* 分页箭头 / 禁用态统一（2026-10-23 验收）：可点的上一页/下一页颜色一致（H5 #8e91a1），禁用态一律 .38 透明 + not-allowed，
   尺寸、占位不变；放文件末尾并用 !important 盖过 ll-b.css / ll-E.css 各页面的单独覆盖（它们把禁用态写成 opacity:1）。个人中心 ll-D-core.js 同一套 class，同时生效。 */
.ll-pager .is-disabled,.ll-pager span.ll-pager__n.is-disabled,.ll-pager [aria-disabled="true"],.ll-pager button:disabled{opacity:.38!important;cursor:not-allowed!important;pointer-events:auto!important}
.ll-pager .is-disabled:hover,.ll-pager [aria-disabled="true"]:hover{border-color:inherit}
@media (max-width:1023px){
  .ll-pager>.ll-pager__step,.ll-pager>span.ll-pager__n.ll-pager__step,.ll-pager>a.ll-pager__step{color:#8e91a1!important}
}

/* ==== 按钮规格（2026-10-23 全站统一）====
   根因：PC 整页 html{zoom:视口/1920}，文字按 max(Npx,--ll-fmin) 托底到渲染 ≥12px，但按钮的 padding/gap/宽高写死 px 会随 zoom 缩小，
   于是文字相对盒子被放大、贴边、溢出换行。规格一律用 em（随字号走）+ max(px, …) 兜底，缩放比 <1 时盒子与文字同比，不再挤。
   主按钮 40 高 / 内边距 max(20px,1.4em) / 14px 600；小药丸 32 高 / max(14px,1.1em) / 13px；状态标签 24 高 / max(10px,.8em) / 12px。
   高度写成 min-height:max(规格高, N em)：zoom 托字后盒子同比长高，永不把字挤出盒子。H5 无 --ll-fmin，恒为规格值。 */
:root{
  --ll-bh:40px;--ll-bpx:max(20px,1.4em);--ll-bfs:max(14px,var(--ll-fmin,0px));
  --ll-bh-sm:32px;--ll-bpx-sm:max(14px,1.1em);--ll-bfs-sm:max(13px,var(--ll-fmin,0px));
  --ll-th:24px;--ll-tpx:max(10px,.8em);--ll-tfs:max(12px,var(--ll-fmin,0px));
  --ll-bgap:max(10px,.8em);
}
.ll-bs,.ll-bs-sm,.ll-bs-tag{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid transparent;line-height:1.2;white-space:nowrap;text-decoration:none;cursor:pointer;font-family:inherit}
.ll-bs{min-height:max(var(--ll-bh),2.4em);padding-block:0;padding-inline:var(--ll-bpx);border-radius:999px;font-size:var(--ll-bfs);font-weight:600;gap:.5em}
.ll-bs-sm{min-height:max(var(--ll-bh-sm),2.3em);padding-block:0;padding-inline:var(--ll-bpx-sm);border-radius:999px;font-size:var(--ll-bfs-sm);font-weight:600;gap:.4em}
.ll-bs-tag{min-height:max(var(--ll-th),1.9em);padding-block:0;padding-inline:var(--ll-tpx);border-radius:999px;font-size:var(--ll-tfs);font-weight:500;cursor:default}
.ll-bs--primary{background:#5c8dff;color:#fff}
.ll-bs--outline{border-color:rgba(92,141,255,.5);background:transparent;color:#5c8dff}
.ll-btn--lg{padding-inline:var(--ll-bpx)}
/* 卡片题材胶囊 / 排行标签：各页面（catalog/search/rank/video 推荐）各有一份写死 px 的 padding，统一用 em（渲染后 ≥ 0.75×12=9px），高度保持原稿 */
.ll-card__tags span,.ll-card__tags a,.llb-rank-tags i,.llb-rank-tags a{padding-inline:.75em!important}
