/* ===========================================================================
 * kanju 主题 · 播放/详情合并页（/vod/:id）
 * 规格取自 kanju41-mirror/screenshots/player-series.png
 *   头部：返回 + 居中标题 + 年份·地区 + 右侧两个图标按钮
 *   主体：左播放器 + 右信息栏（tab / 广告位 / 选集 / 继续发现）
 * ========================================================================= */

.k-watch {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 24.75rem; /* 移动/基线；桌面 ≥1024 覆写为源站 390px */
    gap: 0.75rem; /* 12px：≤1023 单列 player↔aside 竖距；桌面改 0.5rem 对齐 --movie-player-column-gap */
    align-items: start;
}

/* ── 头部 ── */
.k-watch__head {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0.75rem;
    padding: 1rem 0 0.5rem;
    min-height: 4.5rem;
}

.k-watch__back {
    position: absolute;
    left: 0;
    top: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
}

.k-watch__meta {
    text-align: center;
    min-width: 0;
}

.k-watch__title {
    margin: 0;
    font-size: 1.0625rem; /* 17px */
    font-weight: 600;
    color: var(--k-text);
    line-height: 1.3;
}

.k-watch__sub {
    margin: 0.125rem 0 0;
    font-size: var(--k-fs-md);
    color: var(--k-text-subtle);
}

.k-watch__tools {
    position: absolute;
    right: 0;
    top: 1rem;
    display: flex;
    gap: 0.5rem;
    flex-direction: row-reverse;
}
.k-watch__tools [data-k-toggle="like"],
.k-watch__tools [data-k-toggle="fav"],
.k-watch__tools [data-k-open="comment"] {
    display: none;
}

/* ── 播放器区 ── */
.k-player {
    border-radius: var(--k-radius);
    overflow: hidden;
    background: #000;
}

.k-player__stage {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 桌面详情页让播放器占满首屏，控制条贴在视口底部。
 * 间距/圆角对齐源站 movie-player-shell-page（preview/player-series @1440）：
 *   gap=.5rem(8px)=--movie-player-column-gap；右栏 390px；播区/右栏 radius=0。
 * 勿动 ≤760 .k-eps padding/grid（H5 另任务）。 */
@media (min-width: 1024px) {
    #app-main:has(.k-watch) {
        padding-left: 0;
        padding-right: 0;
    }
    .k-watch {
        grid-template-columns: minmax(0, 1fr) 390px; /* 源站 xl:grid-cols …_390px */
        gap: 0.5rem; /* 源站 --movie-player-column-gap */
    }
    .k-watch:has(> .k-player),
    .k-watch:has(> .k-apt) {
        height: calc(100dvh - 72px);
        min-height: 0;
        align-items: stretch;
        overflow: hidden;
    }
    .k-watch > .k-player {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }
    .k-watch > .k-player .k-player__stage {
        aspect-ratio: auto;
        flex: 1 1 auto;
        min-height: 12rem;
    }
    .k-watch > .k-aside {
        height: 100%;
        overflow-y: auto;
        /* 源站 shell-page aside：无圆角/无描边/透明底 + content-gutter .625rem */
        border-radius: 0;
        border: 0;
        background: transparent;
        padding-left: 0.625rem;
        padding-right: 0.625rem;
    }
}

/* 源站 2xl：右栏 420px */
@media (min-width: 1536px) {
    .k-watch {
        grid-template-columns: minmax(0, 1fr) 420px;
    }
}

.k-player__play {
    width: 4rem;
    height: 4rem;
    border: 0;
    border-radius: 50%;
    background: rgb(255 255 255 / 82%);
    color: #111;
    font-size: 1.5rem;
    cursor: pointer;
}

.k-player__notice {
    position: absolute;
    left: 50%;
    top: 38%;
    transform: translate(-50%, -50%);
    color: var(--k-text-subtle);
    font-size: var(--k-fs-md);
    white-space: nowrap;
}

.k-player__bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: rgb(8 9 10 / 88%);
    color: var(--k-text-muted);
    font-size: var(--k-fs-md);
}

.k-player__time {
    font-variant-numeric: tabular-nums;
}

.k-player__danmaku-input {
    flex: 1;
    min-width: 0;
    height: 1.75rem;
    border-radius: 0.25rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text);
    font-family: inherit;
    font-size: var(--k-fs-md);
    padding: 0 0.5rem;
}

/* ── 右栏 ── */
.k-aside {
    border-radius: var(--k-radius);
    background: var(--k-card);
    border: 1px solid var(--k-interactive-border);
    overflow: hidden;
}

.k-aside__tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-bottom: 1px solid var(--k-interactive-border);
}

.k-aside__tabs > a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.625rem 0.25rem;
    font-size: var(--k-fs-md);
    color: var(--k-text-subtle);
    border-bottom: 2px solid transparent;
}

.k-aside__tabs > a[aria-current="page"] {
    color: var(--k-primary);
    border-bottom-color: var(--k-primary);
}

/* 广告位（裁定 9：只复刻版位形状，素材用占位图） */
.k-ads {
    padding: 0.625rem;
    border-bottom: 1px solid var(--k-border-soft);
}

.k-ads__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
    font-size: var(--k-fs-xs);
    color: var(--k-text-subtle);
}

.k-ads__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.25rem;
}

.k-ads__grid > a {
    display: block;
    aspect-ratio: 1;
    border-radius: 0.25rem;
    overflow: hidden;
    background: var(--k-card-inner);
}

.k-ads__grid img { width: 100%; height: 100%; object-fit: cover; }

.k-ads__grid > a { position: relative; }

/* 版位下的小字标签（参照有；内容是投放方名，这里只作占位） */
.k-ads__label {
    display: block;
    margin-top: 2px;
    font-size: 9px;
    line-height: 1.2;
    color: var(--k-text-subtle);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 选集 — 对照源站 movie-episode-*：桌面宽格 minmax(8.25rem)/h-11；移动 5×52 */
.k-eps {
    display: flex;
    flex-direction: column;
    gap: 0.75rem; /* gap-3；PC 保持原值，H5 对称勿动此处 */
    padding: 0.75rem;
    border-bottom: 1px solid var(--k-border-soft);
}
/* 信息条与集数网格多留一点气（竖向，不影响左右） */
.k-eps__latest + .k-eps__grid {
    margin-top: 0.25rem;
}

.k-eps__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0;
}

.k-eps__head-text { min-width: 0; }

.k-eps__title {
    font-size: var(--k-fs-base); /* text-base */
    font-weight: 900;
    color: var(--k-text);
    line-height: 1.3;
}

.k-eps__current {
    margin-top: 0.125rem;
    font-size: var(--k-fs-sm);
    font-weight: 700;
    color: var(--k-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.k-eps__expand {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    flex: none;
    height: 2.75rem; /* h-11 */
    padding: 0 0.75rem;
    border-radius: 0.5rem;
    border: 2px solid rgb(var(--k-primary-rgb) / 55%);
    background: rgb(var(--k-primary-rgb) / 12%);
    color: var(--k-primary);
    font-size: var(--k-fs-sm);
    font-weight: 900;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgb(var(--k-primary-rgb) / 14%), 0 6px 16px rgb(var(--k-primary-rgb) / 8%);
}
.k-eps__expand:hover {
    color: var(--k-text);
    border-color: var(--k-primary);
    background: rgb(var(--k-primary-rgb) / 16%);
}
.k-eps__expand.is-expanded svg { transform: rotate(90deg); }
.k-eps__expand svg { transition: transform .14s ease; flex: none; }

/* 最近更新 — 对照 movie-episode-latest min-h-12 */
.k-eps__latest {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    min-height: 3rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(103 232 249 / 24%);
    background: rgb(103 232 249 / 10%);
    color: rgba(232, 252, 255, 0.9); /* dark immersive：浅字压青底 */
    font-size: var(--k-fs-sm);
    font-weight: 900;
    text-align: left;
    cursor: pointer;
}
.k-eps__latest:hover {
    border-color: rgb(103 232 249 / 40%);
    background: rgb(103 232 249 / 14%);
}
.k-eps__latest-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.k-eps__latest svg { flex: none; opacity: 0.85; }

.k-eps__grid {
    display: grid;
    /* 桌面：源站 movie-episode-desktop-grid minmax(8.25rem)；侧栏约 2 列宽格 */
    grid-template-columns: repeat(auto-fill, minmax(8.25rem, 1fr));
    gap: 0.5rem; /* gap-2 */
    grid-auto-rows: 2.75rem;
    align-content: start;
}

.k-eps__grid > a,
.k-eps__item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 2.75rem; /* h-11 */
    padding: 0 0.625rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font-size: var(--k-fs-base);
    font-weight: 800;
    text-align: center;
    line-height: 1.25;
}

.k-eps__n { display: none; }
.k-eps__label {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.k-eps__grid > a[aria-current="page"],
.k-eps__item[aria-current="page"] {
    border-color: var(--k-primary);
    background: var(--k-primary);
    color: var(--k-primary-ink, #07140f);
    font-weight: 900;
}

/* 继续发现 — 对照 movie-similar-recommendations surface card */
.k-discover {
    margin: 0.75rem;
    border-radius: var(--k-radius);
    border: 1px solid var(--k-border-soft);
    background: var(--k-surface, #25262b);
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.k-discover__head { display: flex; gap: 0.5rem; align-items: flex-start; }

.k-discover__icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    background: rgb(var(--k-primary-rgb) / 14%);
    color: var(--k-primary);
}

.k-discover__title { font-size: var(--k-fs-base); font-weight: 600; color: var(--k-text); }

.k-discover__desc {
    margin: 0.125rem 0 0;
    font-size: var(--k-fs-sm);
    color: var(--k-text-subtle);
    line-height: 1.5;
}

.k-discover__chips { display: flex; flex-wrap: wrap; gap: 0.375rem; }

.k-discover__chips > a {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.3125rem 0.625rem;
    border-radius: 0.375rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font-size: var(--k-fs-sm);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 快捷操作 FAB */
.k-fab {
    position: fixed;
    right: max(1.5rem, var(--k-safe-right));
    bottom: calc(2rem + var(--k-safe-bottom));
    z-index: 30;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    border: 0;
    background: var(--k-primary);
    color: var(--k-primary-ink, #07140f);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.1;
    cursor: pointer;
    box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 40%);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    padding: 0.35rem 0.25rem;
    text-align: center;
}
.k-fab > svg {
    flex: 0 0 auto;
    width: 1.125rem;
    height: 1.125rem;
}
.k-fab > span {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: clip;
    white-space: nowrap;
    transform: scale(0.92);
}

@media (max-width: 1023.98px) {
    .k-watch { grid-template-columns: minmax(0, 1fr); }

    /* 移动播放顶栏：参照设备顶区约 111px → CSS ≈56 */
    .k-watch__head {
        min-height: 3.5rem;
        padding: 0.75rem 0 0.5rem;
        gap: 0.5rem;
    }
    .k-watch__back {
        top: 6px;
        left: -4px;
        width: 44px;
        height: 44px;
        border-radius: 50%;
    }
    .k-watch__tools {
        top: 6px;
    }
    .k-watch__meta {
        max-width: calc(100% - 192px);
    }
    .k-watch__title,
    .k-watch__sub {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }


    /* 参照 player-series-mobile：播放器舞台通栏黑底（无 17px 页边），头栏仍留页边 */
    .k-player {
        margin-left: calc(-1 * var(--k-page-edge));
        margin-right: calc(-1 * var(--k-page-edge));
        border-radius: 0;
        width: auto;
    }
    .k-aside {
        margin-left: calc(-1 * var(--k-page-edge));
        margin-right: calc(-1 * var(--k-page-edge));
        width: auto;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
    }
    .k-aside__tabs {
        padding-left: var(--k-page-edge);
        padding-right: var(--k-page-edge);
    }
    .k-ads,
    .k-eps,
    .k-discover {
        margin-left: 0;
        margin-right: 0;
        border-radius: 0;
    }
    .k-ads { padding-left: var(--k-page-edge); padding-right: var(--k-page-edge); }

    /* 移动播放信息栏广告：参照约一行，12 格两行会把选集顶太低 */
    .k-ads__grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
    .k-ads__grid > a:nth-child(n+7) { display: none; }
    .k-ads__label { display: none; }
    .k-ads__grid > a {
        aspect-ratio: auto;
        height: 3.25rem;
    }

    .k-eps {
        padding: 0.75rem 0.25rem;
        gap: 0.625rem;
    }
    .k-discover { margin: 0.625rem var(--k-page-edge); border-radius: var(--k-radius); }

    /* 选集：参照移动端**一行 5 个**（宽 52、间距 9）。数字格，不用「第N集」。
       左右对称见下方 ≤760 覆盖（勿在本断点改流体格，避免影响平板/PC）。 */
    .k-eps__grid {
        grid-template-columns: repeat(5, 52px);
        gap: 9px;
        justify-content: start;
        grid-auto-rows: 2.125rem;
    }
    .k-eps__grid > a,
    .k-eps__item {
        height: 2.125rem;
        border-radius: 0.375rem;
        padding: 0;
        font-weight: 800;
    }
    .k-eps__n { display: block; }
    .k-eps__label { display: none; }
    .k-eps__expand {
        height: 2.25rem;
        padding: 0 0.625rem;
        border-width: 1px;
        font-weight: 800;
    }
    .k-eps__latest {
        min-height: 2.75rem;
        font-size: 12px;
    }

    /* 收起态：只留第一行。
       必须用 `.k-eps__grid > a...` 压过基础规则 `.k-eps__grid > a { display:flex }`
       （后者特异性 0,1,1，原先单类 --more 被盖掉 → 三行全露、把下面整块顶下去）。 */
    .k-eps__grid > a.k-eps__item--more,
    .k-eps__grid > a:nth-child(n + 6) {
        display: none;
    }

    .k-eps__grid[data-expanded] > a.k-eps__item--more,
    .k-eps__grid[data-expanded] > a:nth-child(n + 6) {
        display: flex;
    }

    /* 选集区左右贴边（≤1023 默认）；≤760 再覆盖为 page-edge 对称 */
    .k-eps {
        padding-left: 0.25rem;
        padding-right: 0.25rem;
    }
    .k-eps__grid {
        padding-left: 0;
    }
    /* 参照移动端**有**这个浮钮，原先这里反而 display:none；尺寸收到 44（触控下限） */
    .k-fab {
        display: block;
        right: 0.75rem;
        bottom: 0.75rem;
        width: 3.25rem; /* 参照亮区约 52–56 CSS px */
        height: 3.25rem;
        font-size: 11px;
    }
}

/* ── H5 ≤760：选集左右与 page-edge 对称（仅本断点；PC/平板 1024+ / 761–1023 不改）── */
@media (max-width: 760px) {
    .k-eps {
        padding: 0.75rem var(--k-page-edge);
    }
    .k-eps__grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 9px;
        justify-content: stretch;
        width: 100%;
        box-sizing: border-box;
        padding-left: 0;
        padding-right: 0;
    }
    .k-eps__grid > a,
    .k-eps__item {
        width: 100%;
    }
    .k-eps__latest {
        width: 100%;
        box-sizing: border-box;
    }
}

/* ── 移动端广告格：单行 6 格已在上方 media 处理；此处不再强制 1:1 两行 ── */
@media (max-width: 1023.98px) {
    .k-ads__grid > a {
        aspect-ratio: auto;
    }
}

/* ── 控制条：移动端只留 播放/下一集/时间/齿轮/画中画/全屏（参照移动播放页六项）── */
.k-player__time {
    white-space: nowrap;
}

@media (max-width: 1023.98px) {
    /* 不隐藏可选控件时，窄屏会把它们压到文字逐字换行（实测「00:00 / 00:00」断两行） */
    .k-player__bar-opt {
        display: none;
    }

    .k-player__bar {
        gap: 0.625rem;
    }
}

/* ── 播放器覆盖层（移动基线量取：胶囊 top14/right22、第 N 集 chip 左侧、底部细进度条）── */
.k-player__badge {
    position: absolute;
    top: 14px;
    right: 22px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 12px;
    border-radius: 14px;
    background: rgb(0 0 0 / 42%);
    border: 1px solid rgb(22 224 157 / 32%);
    color: #d5faec;
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.k-player__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--k-primary);
    flex: 0 0 auto;
}

.k-player__epchip {
    position: absolute;
    left: 12px;
    /* 参照 react-player-operation-episode-trigger: bottom-[5.25rem] left-3 —— 贴左下、进度条之上 */
    bottom: 1.75rem;
    top: auto;
    transform: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px;
    border-radius: 6px;
    background: rgb(0 0 0 / 45%);
    border: 1px solid rgb(167 247 217 / 42%);
    color: #fff;
    font-size: 13px;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    z-index: 5;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.k-player__epchip:hover {
    border-color: rgb(22 224 157 / 72%);
    background: rgb(0 0 0 / 62%);
}
.k-player__epchip:active {
    transform: scale(0.98);
}

/* 品牌水印（裁定 9：用 maccmsAI 的品牌资源，不搬参照站水印） */
.k-player__wm {
    position: absolute;
    left: 26px;
    bottom: 20px;
    width: 104px;
    height: 26px;
    object-fit: contain;
    opacity: 0.1;
    pointer-events: none;
}

/* 底部细进度条（参照移动端有一条，左端带绿点） */
.k-player__progress {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 12px;
    height: 3px;
    border-radius: 2px;
    background: rgb(255 255 255 / 18%);
    overflow: hidden;
}

.k-player__progress > i {
    display: block;
    width: 2%;
    height: 100%;
    border-radius: 2px;
    background: var(--k-primary);
}

/* ── 继续发现：两列按钮格（参照移动端是 2 列 4 钮，带图标）── */
.k-discover__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.k-discover__grid > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 38px;
    padding: 0 12px;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font-size: 13px;
    text-decoration: none;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.k-discover__grid > a:hover {
    color: var(--k-text);
    border-color: var(--k-interactive-border-hover);
}

/* 弹幕发送行（任务 5.3）：播放器下一条输入 + 发送 */
.k-apt__send {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.k-apt__send-tag {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 6px;
    background: rgb(22 224 157 / 12%);
    color: var(--k-primary);
    font-size: 12px;
    line-height: 26px;
    text-align: center;
}

.k-apt__send-input {
    flex: 1;
    min-width: 0;
    height: 36px;
    padding: 0 12px;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text);
    font-size: 13px;
    outline: none;
}

.k-apt__send-input:focus {
    border-color: rgb(22 224 157 / 48%);
}

.k-apt__send-err {
    margin: 8px 0 0;
    font-size: 12px;
    color: var(--k-danger, #fecaca);
}

/* ── 换源入口（任务 3.1）：badge 做成按钮（.k-player__badge 提供外观）── */
.k-player__badge--btn {
    cursor: pointer;
    z-index: 20;            /* ArtPlayer 控件层之上，保证可点 */
    font-family: inherit;
}
.k-player__badge--btn:hover {
    border-color: rgb(22 224 157 / 60%);
}

/* 弱化动作（无相邻集/无演员数据的占位文本，与 chip 同形但不可点） */
.k-discover__plain,
.k-eps__item span {
    color: var(--k-text-subtle);
}
.k-discover__chips .k-discover__plain {
    opacity: 0.55;
}


/* ── player-opt 2026-10-11: 播放/详情交互地标 ── */
/* badge / 换源入口 */
.k-player__badge {
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.k-player__badge:hover,
.k-player__badge--btn:hover {
    border-color: rgb(22 224 157 / 72%);
    background: rgb(0 0 0 / 58%);
    box-shadow: 0 0 0 1px rgb(22 224 157 / 18%);
}
.k-player__badge--btn:focus-visible {
    outline: 2px solid rgb(22 224 157 / 55%);
    outline-offset: 2px;
}

/* 中央播放钮 */
.k-player__play {
    transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
    box-shadow: 0 8px 24px rgb(0 0 0 / 35%);
}
.k-player__play:hover {
    transform: scale(1.06);
    background: rgb(255 255 255 / 92%);
}
.k-player__play:active {
    transform: scale(0.98);
}

/* 底进度条命中加粗 */
.k-player__progress {
    cursor: pointer;
    transition: height .12s ease, background .12s ease;
}
.k-player__progress:hover {
    height: 5px;
    background: rgb(255 255 255 / 28%);
}
.k-player__progress::after {
    content: "";
    position: absolute;
    left: 0; right: 0;
    top: -8px; bottom: -8px;
}

/* 控制条图标热区
   注意：不能写 `.k-player__bar > span { display:… }` —— 特异性会压过
   `.k-player__bar-opt { display:none }`，把移动端该藏的弹幕/音量又露出来、撑高控制条。 */
.k-player__bar > span:not(.k-player__bar-opt),
.k-player__bar > button:not(.k-player__bar-opt) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.125rem;
    border-radius: 0.375rem;
    transition: color .12s ease, background .12s ease;
    cursor: pointer;
}
.k-player__bar > span:not(.k-player__bar-opt):hover,
.k-player__bar > button:not(.k-player__bar-opt):hover {
    color: var(--k-text);
    background: rgb(255 255 255 / 8%);
}
@media (min-width: 1024px) {
    .k-player__bar > span:not(.k-player__bar-opt),
    .k-player__bar > button:not(.k-player__bar-opt) {
        min-width: 1.75rem;
        min-height: 1.75rem;
        padding: 0;
    }
}
/* 再次钉死：移动端可选控件必须隐藏（防后续规则回退） */
@media (max-width: 1023.98px) {
    .k-player__bar > .k-player__bar-opt {
        display: none !important;
    }
}

/* 右栏 tab 悬停 */
.k-aside__tabs > a {
    transition: color .12s ease, border-color .12s ease, background .12s ease;
}
.k-aside__tabs > a:hover {
    color: var(--k-text);
    background: rgb(255 255 255 / 3%);
}

/* 选集格过渡 */
.k-eps__grid > a {
    transition: border-color .14s ease, background .14s ease, color .14s ease, transform .12s ease;
}
.k-eps__grid > a:hover {
    color: var(--k-text);
    border-color: rgb(22 224 157 / 42%);
    background: rgb(22 224 157 / 8%);
}
.k-eps__grid > a:active {
    transform: scale(0.97);
}
.k-eps__expand {
    transition: border-color .14s ease, background .14s ease, color .14s ease;
}
.k-eps__expand:hover {
    border-color: rgb(22 224 157 / 62%);
    background: rgb(22 224 157 / 16%);
}

/* 继续发现 chips / grid */
.k-discover__chips > a,
.k-discover__grid > a,
.k-discover__chips .k-discover__plain,
.k-discover__grid .k-discover__plain {
    transition: border-color .14s ease, color .14s ease, background .14s ease;
}
.k-discover__chips > a:hover {
    color: var(--k-text);
    border-color: var(--k-interactive-border-hover);
    background: rgb(22 224 157 / 8%);
}
.k-discover__grid > a:hover {
    background: rgb(22 224 157 / 8%);
}

/* FAB */
.k-fab {
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.k-fab:hover {
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 0.65rem 1.75rem rgb(0 0 0 / 48%);
    filter: brightness(1.05);
}
.k-fab:active {
    transform: scale(0.96);
}

/* 头部工具钮统一圆形热区（详情页曾用 emoji，现与播放页同款 iconbtn） */
.k-watch__tools .k-iconbtn {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    transition: border-color .12s ease, color .12s ease, background .12s ease;
}
@media (max-width: 1023.98px) {
    .k-watch__tools .k-iconbtn {
        width: 44px;
        height: 44px;
    }
}
.k-watch__tools .k-iconbtn:hover {
    color: var(--k-text);
    border-color: var(--k-interactive-border-hover);
    background: rgb(255 255 255 / 6%);
}

/* 喜欢/收藏/加片单：本地 pressed 视觉态（实心色 + 描边高亮）；不落库 */
.k-watch__tools .k-iconbtn.is-active,
.k-watch__tools .k-iconbtn[aria-pressed="true"] {
    color: var(--k-primary);
    border-color: rgb(var(--k-primary-rgb) / 52%);
    background: rgb(var(--k-primary-rgb) / 12%);
}
.k-watch__tools .k-iconbtn.is-active svg,
.k-watch__tools .k-iconbtn[aria-pressed="true"] svg {
    fill: currentColor;
}
.k-watch__back {
    transition: border-color .12s ease, color .12s ease, background .12s ease;
}
.k-watch__back:hover {
    color: var(--k-text);
    border-color: var(--k-interactive-border-hover);
}

/* 广告格轻反馈（不改版位几何） */
.k-ads__grid > a {
    transition: transform .12s ease, opacity .12s ease;
}
.k-ads__grid > a:hover {
    opacity: 0.92;
    transform: translateY(-1px);
}

/* 404 / 错误卡：保证在 player 文件内也有完整样式（pages.css 仍保留一份；此处提高可维护性） */
.k-player--error .k-player__stage {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    aspect-ratio: auto;
    min-height: calc(100dvh - 7.5rem);
}
.k-errbox {
    width: 446px;
    max-width: calc(100% - 2rem);
    padding: 1.25rem 1.5rem;
    border-radius: 10px;
    border: 1px solid var(--k-border-soft);
    background: var(--k-card);
    text-align: center;
    box-shadow: 0 12px 40px rgb(0 0 0 / 35%);
}
.k-errbox__title {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--k-text);
}
.k-errbox__desc {
    margin: 10px 0 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--k-text-subtle);
}
.k-errbox__acts {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 18px;
}
.k-errbox__acts .k-btn {
    transition: filter .12s ease, transform .12s ease;
}
.k-errbox__acts .k-btn:hover {
    filter: brightness(1.06);
}
.k-errbox__acts .k-btn:active {
    transform: scale(0.98);
}

@media (max-width: 1023.98px) {
    /* 窄屏 epchip 仍贴左下，略抬高避开控制条 */
    .k-player__epchip {
        left: 10px;
        bottom: 1.35rem;
    }
    .k-player__progress {
        bottom: 8px;
    }
    /* 错误卡窄屏满宽留白 */
    .k-errbox {
        width: calc(100% - 2rem);
        padding: 1.1rem 1.15rem;
    }
    .k-player--error .k-player__stage {
        min-height: 16rem;
        aspect-ratio: 16 / 9;
    }
}

@media (prefers-reduced-motion: reduce) {
    .k-player__play,
    .k-player__epchip,
    .k-eps__grid > a,
    .k-fab,
    .k-ads__grid > a,
    .k-errbox__acts .k-btn {
        transition: none;
    }
}


/* ── player-opt: 换源弹层（#k-ov-source，避开 short.css 同名类冲突）── */
#k-ov-source .k-srclist {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
#k-ov-source .k-src {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 10px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font: inherit;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease, color .14s ease, transform .12s ease;
}
#k-ov-source .k-src em {
    font-style: normal;
    font-size: 12px;
    color: var(--k-text-subtle);
}
#k-ov-source .k-src:hover:not(.is-current) {
    color: var(--k-text);
    border-color: rgb(22 224 157 / 42%);
    background: rgb(22 224 157 / 8%);
}
#k-ov-source .k-src:active {
    transform: scale(0.99);
}
#k-ov-source .k-src.is-current {
    border-color: rgb(22 224 157 / 72%);
    background: rgb(22 224 157 / 12%);
    color: var(--k-text);
}
#k-ov-source .k-src.is-current em {
    color: var(--k-primary);
    font-weight: 600;
}

/* 桌面右栏 tab 粘性（长选集滚动时动作行常驻） */
@media (min-width: 1024px) {
    .k-aside {
        position: relative; /* 随 .k-watch 行等高，不再 sticky+100dvh 另算 */
        top: auto;
        align-self: stretch;
        height: 100%;
        max-height: none;
        overflow: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }
    .k-aside__tabs {
        position: sticky;
        top: 0;
        z-index: 2;
        /* 源站 sticky-tabs 半透明 elevated；桌面 aside 已透明，用 surface 托住 tab */
        background: var(--k-bg, var(--k-card));
    }
}

/* 选集展开钮与格子同一行基线（桌面展开钮升高后） */
.k-eps__head {
    align-items: center;
    min-height: 2.75rem;
}


/* ── player-opt: 选集侧栏弹层（#k-ov-episodes）── */
#k-ov-episodes .k-epgrid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
#k-ov-episodes .k-ep {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 8px;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font: inherit;
    font-size: 13px;
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease, color .14s ease;
}
#k-ov-episodes .k-ep:hover:not(.is-current) {
    color: var(--k-text);
    border-color: rgb(22 224 157 / 42%);
    background: rgb(22 224 157 / 8%);
}
#k-ov-episodes .k-ep.is-current {
    border-color: rgb(22 224 157 / 72%);
    background: var(--k-primary);
    color: var(--k-primary-ink, #07140f);
    font-weight: 700;
}

/* 舞台审号文案：略上移，避开中央播放钮 */
.k-player__notice {
    top: 28%;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 8px rgb(0 0 0 / 55%);
}

/* 水印稍可见一点（仍很淡，不抢戏） */
.k-player__wm {
    opacity: 0.14;
}


/* ── player-opt: focus-visible ── */
.k-eps__grid > a:focus-visible,
.k-aside__tabs > a:focus-visible,
.k-discover__grid > a:focus-visible,
.k-discover__chips > a:focus-visible,
.k-watch__back:focus-visible,
.k-watch__tools .k-iconbtn:focus-visible,
.k-fab:focus-visible,
.k-player__play:focus-visible,
.k-player__epchip:focus-visible {
    outline: 2px solid rgb(22 224 157 / 55%);
    outline-offset: 2px;
}


/* ── player-opt: apt send dock ── */
.k-apt > .k-apt__send {
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-card);
}
.k-apt > .k-apt__send .k-apt__send-input {
    height: 36px;
    border-radius: 8px;
}
.k-apt > .k-apt__send .k-btn {
    min-height: 36px;
    padding: 0 14px;
    border-radius: 8px;
}
@media (max-width: 1023.98px) {
    .k-apt > .k-apt__send {
        border-radius: 8px;
    }
}


/* ── player-opt: light theme overlays ── */
html.light .k-player__bar {
    background: rgb(255 255 255 / 92%);
    color: var(--k-text-muted);
    border-top: 1px solid var(--k-interactive-border);
}
html.light .k-player__danmaku-input {
    background: #fff;
    border-color: var(--k-interactive-border);
    color: var(--k-text);
}
html.light .k-player__badge,
html.light .k-player__epchip {
    background: rgb(255 255 255 / 82%);
    color: #0b1a14;
    border-color: rgb(22 224 157 / 45%);
}
html.light .k-player__notice {
    color: rgb(255 255 255 / 78%);
}
html.light .k-apt > .k-apt__send {
    background: var(--k-card);
}
html.light .k-talk__input {
    background: #fff;
    border-color: var(--k-interactive-border);
    color: var(--k-text);
}
html.light .k-talk__input:focus {
    background: #fff;
}

/* html.light：选集「最近更新」信息条 —— 深色字压浅青底（暗色仍用上方浅字） */
html.light .k-eps__latest {
    border-color: rgb(14 116 144 / 28%);
    background: rgb(14 116 144 / 9%);
    color: #0f5668;
}
html.light .k-eps__latest:hover {
    border-color: rgb(14 116 144 / 42%);
    background: rgb(14 116 144 / 13%);
    color: #0c4a5c;
}
html.light .k-eps__current {
    color: var(--k-text-muted);
}





/* ── player-opt: apt fallback + source empty ── */
.k-apt__fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 12rem;
    margin: 0;
    padding: 2rem 1.25rem;
    text-align: center;
    color: var(--k-text-subtle);
    font-size: var(--k-fs-md);
    background: #000;
}
#k-ov-source .k-rail-empty {
    padding: 1.25rem 0.5rem;
    text-align: center;
    color: var(--k-text-subtle);
    font-size: 13px;
}



/* ── player-opt: ads head typography ── */
.k-ads__head {
    letter-spacing: 0.01em;
}


/* ── player-opt: aside tab underline + discover head ── */

.k-aside__tabs > a svg {
    flex: 0 0 auto;
    opacity: 0.9;
}
.k-discover__head {
    margin-bottom: 2px;
}
.k-discover__desc {
    max-width: 36em;
}


/* ── player-opt: sub + fab z ── */
.k-watch__sub {
    letter-spacing: 0.02em;
}
.k-fab {
    z-index: 40; /* 高于 sticky aside (内容滚动层) */
}
/* 展开选集：当前文案箭头间距 */
.k-eps__expand {
    white-space: nowrap;
}




/* ── 侧栏简介/详情（对照源站 info-card-has-backdrop：封面嵌卡） ── */
/* 源站 .movie-player-info-flip：height/min-height 13.5rem；封面区随卡片等高 */
.k-blurb {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 12.5rem; /* 收矮：原 13.5rem(=源站) 略收，配合一屏 */
    min-height: 12.5rem;
    padding: 0.5rem 0.75rem 0;
    border: 1px solid var(--k-border-soft);
    border-radius: 0.5rem;
    background: var(--k-surface, #25262b);
    margin: 0;
    box-sizing: border-box;
}
.k-blurb::before,
.k-blurb::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
    transition: opacity .24s ease-out;
}
.k-blurb--cover {
    --k-blurb-text: rgba(255, 255, 255, 0.92);
    --k-blurb-muted: rgba(255, 255, 255, 0.62);
    --k-blurb-subtle: rgba(255, 255, 255, 0.44);
    color: var(--k-blurb-text);
    border-color: rgba(255, 255, 255, 0.086);
    background: rgba(255, 255, 255, 0.06);
}
.k-blurb--cover::before {
    opacity: 1;
    background-image: var(--k-blurb-cover);
    background-position: 50% 42%;
    background-repeat: no-repeat;
    background-size: cover;
}
.k-blurb--cover::after {
    opacity: 1;
    background:
        linear-gradient(rgba(7, 13, 16, 0.12), rgba(7, 13, 16, 0.34)),
        linear-gradient(90deg, rgba(7, 13, 16, 0.72), rgba(7, 13, 16, 0.42) 42%, rgba(7, 13, 16, 0.1) 78%, rgba(7, 13, 16, 0.2));
}
.k-blurb__top,
.k-blurb__actions,
.k-blurb__overview,
.k-blurb__level {
    position: relative;
    z-index: 1;
}
.k-blurb__more {
    position: absolute;
    top: 0.42rem;
    right: 0.5rem;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 0.12rem;
    min-height: 1.32rem;
    padding: 0.15rem 0.36rem 0.15rem 0.44rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(7, 13, 16, 0.5);
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.54rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.06), 0 2px 8px rgba(0, 0, 0, 0.12);
    transition: border-color .16s, color .16s, background-color .16s;
}
.k-blurb:not(.k-blurb--cover) .k-blurb__more {
    border-color: rgb(var(--k-primary-rgb) / 26%);
    background: rgb(255 255 255 / 6%);
    color: var(--k-text-muted);
}
.k-blurb__more:hover {
    border-color: rgb(var(--k-primary-rgb) / 54%);
    color: var(--k-primary);
    background: rgba(7, 13, 16, 0.66);
}
.k-blurb__more svg {
    width: 0.72rem;
    height: 0.72rem;
}
.k-blurb__top {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    padding-right: 4.2rem; /* room for 更多推荐 */
}
.k-blurb__head,
.k-blurb__overview {
    display: block;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    font: inherit;
}
.k-blurb__head {
    flex: 1 1 auto;
    max-width: min(62%, 22rem);
    min-width: 0;
}
.k-blurb__head:focus-visible,
.k-blurb__overview:focus-visible,
.k-blurb__more:focus-visible,
.k-info__back:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--k-primary) 45%, transparent);
    outline-offset: 2px;
}
.k-blurb__title-row {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
}
.k-blurb__title {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--k-fs-md, 1rem);
    font-weight: 800;
    color: var(--k-text);
    line-height: 1.4;
}
.k-blurb--cover .k-blurb__title {
    color: var(--k-blurb-text);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.72);
}
.k-blurb__title-row > svg {
    flex: 0 0 auto;
    color: var(--k-primary);
    opacity: 0.9;
}
.k-blurb__heat {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.1rem;
    margin-left: 0.15rem;
    padding: 0.1rem 0.3rem 0.1rem 0.15rem;
    border: 1px solid var(--k-border-soft);
    border-radius: 0.375rem;
    font-size: 10px;
    font-weight: 800;
    color: var(--k-primary);
    line-height: 1;
    background: rgb(var(--k-primary-rgb) / 12%);
}
.k-blurb--cover .k-blurb__heat {
    border-color: rgb(var(--k-primary-rgb) / 42%);
    color: var(--k-primary);
    background: rgba(7, 13, 16, 0.5);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.08), 0 2px 8px rgba(0, 0, 0, 0.12);
}
.k-blurb__heat-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 0.9rem;
    height: 0.9rem;
    border-radius: 0.2rem;
    background: rgb(var(--k-primary-rgb) / 16%);
    color: var(--k-primary);
}
.k-blurb__heat-ico svg {
    display: block;
}
.k-blurb__heat-n {
    padding-right: 0.05rem;
    line-height: 1;
}
.k-blurb__meta {
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
    font-size: 10px;
    font-weight: 600;
    color: var(--k-text-muted);
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: right;
}
.k-blurb--cover .k-blurb__meta {
    color: var(--k-blurb-muted);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.72);
}
.k-blurb__overview {
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0.35rem;
    padding: 0 0 0.35rem;
    color: var(--k-text-muted);
    font-size: 11px;
    line-height: 1.35;
}
.k-blurb--cover .k-blurb__overview {
    color: var(--k-blurb-muted);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.72);
}
.k-blurb__line {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.k-blurb__level {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex: 0 0 auto;
    margin: auto -0.75rem 0; /* 贴底，对照源站 movie-level-card margin-top:auto */
    padding: 0.4rem 0.75rem 0.55rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    background: linear-gradient(90deg, rgba(7, 13, 16, 0.76), rgba(7, 13, 16, 0.42));
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.06);
    font-size: 11px;
    font-weight: 800;
    overflow: hidden;
}
.k-blurb:not(.k-blurb--cover) .k-blurb__level {
    background: rgb(255 255 255 / 3%);
    border-top-color: var(--k-border-soft);
}
.k-blurb__level-name {
    flex: 0 0 auto;
    color: var(--k-text);
}
.k-blurb--cover .k-blurb__level-name {
    color: var(--k-blurb-text);
}
.k-blurb__level-bar {
    flex: 1 1 auto;
    min-width: 2.5rem;
    height: 0.35rem;
    border-radius: 999px;
    background: rgb(255 255 255 / 10%);
    overflow: hidden;
}
.k-blurb__level-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--k-primary), #f3c969, var(--k-primary));
}
.k-blurb__level-meta {
    flex: 0 0 auto;
    color: var(--k-primary);
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}
.k-blurb__level-track {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: rgb(255 255 255 / 8%);
}
.k-blurb__level-track > span {
    display: block;
    height: 100%;
    background: var(--k-primary);
}


.k-info {
    padding: 0.5rem 0.75rem 0.75rem;
    border-bottom: 1px solid var(--k-border-soft);
    min-height: 0;
}
.k-info__toolbar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.625rem;
}
.k-info__back {
    display: inline-flex;
    align-items: center;
    height: 2rem;
    padding: 0 0.625rem;
    border: 1px solid var(--k-border-soft);
    border-radius: 0.375rem;
    background: var(--k-surface);
    color: var(--k-text);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.k-info__back:hover {
    border-color: var(--k-border);
}
.k-info__toolbar-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--k-text-subtle);
}
.k-info__body {
    display: flex;
    gap: 0.75rem;
    min-width: 0;
    max-height: min(52vh, 28rem);
    overflow-y: auto;
    scrollbar-width: thin;
}
.k-info__poster {
    flex: 0 0 auto;
    width: 5rem;
    height: 7rem;
    border-radius: 0.375rem;
    overflow: hidden;
    background: var(--k-surface);
}
.k-info__poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.k-info__main {
    min-width: 0;
    flex: 1 1 auto;
}
.k-info__name {
    margin: 0;
    font-size: var(--k-fs-md, 1rem);
    font-weight: 800;
    color: var(--k-text);
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.k-info__meta {
    margin: 0.25rem 0 0;
    font-size: 12px;
    line-height: 1.4;
    color: var(--k-text-muted);
}
.k-info__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 0.75rem 0 0;
}
.k-info__stat {
    margin: 0;
    padding: 0.5rem 0.625rem;
    border: 1px solid var(--k-border-soft);
    border-radius: 0.375rem;
    background: var(--k-surface);
    min-width: 0;
}
.k-info__stat dt {
    margin: 0;
    font-size: 10px;
    font-weight: 700;
    color: var(--k-text-subtle);
}
.k-info__stat dd {
    margin: 0.125rem 0 0;
    font-size: 12px;
    font-weight: 800;
    color: var(--k-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.k-info__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.5rem;
}
.k-info__tag {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border: 1px solid var(--k-border-soft);
    border-radius: 0.25rem;
    font-size: 12px;
    color: var(--k-text);
    background: transparent;
}
.k-info__content {
    margin: 0.75rem 0 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--k-text-muted);
    white-space: pre-wrap;
    word-break: break-word;
}
.k-info__content--empty {
    opacity: 0.7;
    font-style: italic;
}

/* 详情展开时隐藏摘要 / 广告 / 选集 / 继续发现 */
.k-aside[data-k-panel="info"] .k-blurb,
.k-aside[data-k-panel="info"] .k-ads,
.k-aside[data-k-panel="info"] [data-k-eps-panel],
.k-aside[data-k-panel="info"] .k-eps,
.k-aside[data-k-panel="info"] .k-discover {
    display: none;
}
.k-aside[data-k-panel="info"] .k-info {
    display: block;
}

/* 投屏空态面板（对照 mirror cast panel；无真投屏） */
.k-cast {
    display: none;
    padding: 0.75rem;
    border-bottom: 1px solid var(--k-border-soft);
}
.k-aside[data-k-panel="cast"] .k-blurb,
.k-aside[data-k-panel="cast"] .k-ads,
.k-aside[data-k-panel="cast"] [data-k-eps-panel],
.k-aside[data-k-panel="cast"] .k-eps,
.k-aside[data-k-panel="cast"] .k-discover,
.k-aside[data-k-panel="cast"] .k-info {
    display: none !important;
}
.k-aside[data-k-panel="cast"] .k-cast {
    display: block;
}
.k-cast__providers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.375rem;
    margin-bottom: 0.75rem;
}
.k-cast__prov {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    min-height: 2.25rem;
    padding: 0.375rem 0.5rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-card-inner);
    color: var(--k-text-subtle);
    font-size: var(--k-fs-sm);
    font-weight: 600;
    cursor: pointer;
}
.k-cast__prov.is-active,
.k-cast__prov[aria-selected="true"] {
    color: var(--k-primary);
    border-color: var(--k-primary);
    background: rgb(22 224 157 / 10%);
}
.k-cast__pane { display: grid; gap: 0.75rem; }
.k-cast__card {
    border: 1px solid var(--k-border-soft);
    border-radius: 0.625rem;
    background: var(--k-bg-elevated, var(--k-card-inner));
    padding: 0.75rem;
}
.k-cast__card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.625rem;
    font-size: var(--k-fs-sm);
    font-weight: 600;
    color: var(--k-text);
}
.k-cast__iconbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.375rem;
    border: 1px solid var(--k-interactive-border);
    background: transparent;
    color: var(--k-text-subtle);
    cursor: pointer;
}
.k-cast__iconbtn:hover { color: var(--k-text); border-color: var(--k-interactive-border-hover); }
.k-cast__empty {
    min-height: 4.5rem;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 0.75rem;
    border-radius: 0.5rem;
    border: 1px dashed var(--k-border-soft);
    color: var(--k-text-subtle);
    font-size: var(--k-fs-sm);
}
.k-cast__add {
    width: 100%;
    justify-content: center;
}
.k-cast__actions {
    display: grid;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
}
.k-cast__link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 2rem;
    padding: 0.25rem 0.5rem;
    border-radius: 0.375rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font-size: var(--k-fs-sm);
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}
.k-cast__link:hover {
    color: var(--k-text);
    border-color: var(--k-interactive-border-hover);
}
.k-cast__steps {
    margin: 0;
    padding-left: 1.1rem;
    color: var(--k-text-subtle);
    font-size: var(--k-fs-xs);
    line-height: 1.55;
}
.k-cast__steps > li { margin: 0.2rem 0; }
@media (max-width: 767px) {
    .k-cast { padding-left: var(--k-page-edge); padding-right: var(--k-page-edge); }
}


/* ── discover-grid-kanju 2026-10-11 ── */
/* mirror：aside 内 2 列，宽一点 3 列；钮高 ~40；icon+截断文案 */
.k-discover__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}
@media (min-width: 420px) {
    .k-aside .k-discover__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1280px) {
    .k-aside .k-discover__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
.k-discover__grid > a,
.k-discover__grid > .k-discover__plain {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    min-width: 0;
    height: 2.5rem;
    padding: 0 0.5rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font-size: 0.75rem;
    font-weight: 700;
    text-decoration: none;
    overflow: hidden;
    white-space: nowrap;
}
.k-discover__grid > a > span,
.k-discover__grid > .k-discover__plain > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.k-discover__grid > a > svg,
.k-discover__grid > .k-discover__plain > svg {
    flex: 0 0 auto;
    opacity: 0.9;
}
.k-discover__grid > a:hover {
    color: var(--k-text);
    border-color: var(--k-interactive-border-hover);
    background: rgb(22 224 157 / 8%);
}
.k-discover__grid > .k-discover__plain {
    opacity: 0.55;
    cursor: default;
}
.k-discover__grid > a.k-discover__related {
    font-weight: 600;
}


/* desktop eps collapse：宽格约 2 列，默认约 4 行（8 格），展开显示全部 */
@media (min-width: 1024px) {
    .k-eps__grid > a:nth-child(n + 9),
    .k-eps__grid > .k-eps__item:nth-child(n + 9) {
        display: none;
    }
    .k-eps__grid[data-expanded] > a:nth-child(n + 9),
    .k-eps__grid[data-expanded] > .k-eps__item:nth-child(n + 9) {
        display: flex;
    }
}


/* ── 讨论 inline 面板（对照 mirror movie-comment-panel + frontend-design 层次） ── */
.k-talk {
    display: none;
    flex-direction: column;
    min-height: 16rem;
    padding: 0.85rem 0.9rem 0.8rem;
    border-bottom: 1px solid var(--k-border-soft);
    gap: 0.75rem;
}
.k-aside[data-k-panel="talk"] .k-talk {
    display: flex;
}
.k-aside[data-k-panel="talk"] .k-blurb,
.k-aside[data-k-panel="talk"] .k-ads,
.k-aside[data-k-panel="talk"] [data-k-eps-panel],
.k-aside[data-k-panel="talk"] .k-eps,
.k-aside[data-k-panel="talk"] .k-discover,
.k-aside[data-k-panel="talk"] .k-info,
.k-aside[data-k-panel="talk"] .k-cast,
.k-aside[data-k-panel="talk"] .k-fb {
    display: none !important;
}
.k-talk__list {
    flex: 1 1 auto;
    min-height: 10rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding-right: 0.15rem;
    scrollbar-gutter: stable;
}
.k-talk__empty {
    margin: 0.35rem 0;
    padding: 2.75rem 1.1rem;
    border: 1px dashed rgba(var(--k-primary-rgb) / 22%);
    border-radius: var(--k-radius);
    background:
        radial-gradient(120% 80% at 50% 0%, rgba(var(--k-primary-rgb) / 10%), transparent 55%),
        var(--k-card-inner);
    text-align: center;
}
.k-talk__empty-title {
    margin: 0;
    font-size: var(--k-fs-base);
    font-weight: 750;
    letter-spacing: 0.01em;
    color: var(--k-text);
}
.k-talk__empty-desc {
    margin: 0.55rem 0 0;
    font-size: var(--k-fs-sm);
    line-height: 1.65;
    color: var(--k-text-subtle);
}
.k-talk__composer {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-top: auto;
    padding: 0.8rem 0.15rem 0.15rem;
    border-top: 1px solid var(--k-border-soft);
    background:
        linear-gradient(180deg, rgba(var(--k-primary-rgb) / 4%), transparent 42%);
}
.k-talk__input-row {
    display: flex;
    align-items: stretch;
    gap: 0.55rem;
}
.k-talk__input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 2.75rem;
    padding: 0.65rem 0.9rem;
    border-radius: 0.55rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-card-inner, rgba(8, 9, 10, 0.55));
    color: var(--k-text);
    font: inherit;
    font-size: var(--k-fs-base);
    line-height: 1.45;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.k-talk__input::placeholder {
    color: var(--k-text-subtle);
}
.k-talk__input:hover {
    border-color: var(--k-interactive-border-hover);
}
.k-talk__input:focus {
    outline: none;
    border-color: var(--k-primary);
    background: var(--k-surface, rgba(8, 9, 10, 0.72));
    box-shadow: 0 0 0 3px rgba(var(--k-primary-rgb) / 16%);
}
.k-talk__captcha {
    display: grid;
    grid-template-columns: 6.75rem minmax(0, 1fr);
    align-items: stretch;
    gap: 0.55rem;
}
.k-talk__captcha-img {
    width: 100%;
    height: 2.5rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-border-soft);
    background: #f4f7f5;
    object-fit: cover;
    cursor: pointer;
    flex: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.k-talk__captcha-img:hover {
    border-color: rgba(var(--k-primary-rgb) / 36%);
    box-shadow: 0 0 0 2px rgba(var(--k-primary-rgb) / 10%);
}
.k-talk__captcha-input {
    min-width: 0;
    min-height: 2.5rem;
    padding: 0.45rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-card-inner, var(--k-surface));
    color: var(--k-text);
    font: inherit;
    font-size: var(--k-fs-sm);
    letter-spacing: 0.04em;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.k-talk__captcha-input:focus {
    outline: none;
    border-color: var(--k-primary);
    box-shadow: 0 0 0 3px rgba(var(--k-primary-rgb) / 14%);
}
.k-talk__send {
    flex: 0 0 auto;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.55rem;
    box-shadow: 0 6px 16px rgba(var(--k-primary-rgb) / 22%);
}
.k-talk__send:hover {
    filter: brightness(1.05);
}
.k-talk__hint {
    margin: 0;
    padding: 0.05rem 0.1rem 0;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0.02em;
    color: var(--k-text-subtle);
}
.k-talk .k-cm__item {
    --k-cm-accent: transparent;
    --k-cm-accent-rgb: 255, 255, 255;
    --k-cm-author: var(--k-text-muted);
    --k-cm-content: var(--k-text);
    --k-cm-glow: transparent;
    margin: 0;
    padding: 0.55rem 0.7rem;
    border-radius: 0.35rem; /* 源站 rounded ≈ 6px，别用大圆角 */
    border: 1px solid var(--k-border-soft);
    background: rgba(28, 30, 34, 0.92);
    color: var(--k-text);
    font-size: var(--k-fs-sm);
    line-height: 1.45;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.k-talk .k-cm__item:hover {
    border-color: rgba(255, 255, 255, 0.14);
}
.k-talk .k-cm__main {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    align-items: flex-start;
    gap: 0.6rem;
}
.k-talk .k-cm__item--reply {
    background: rgba(255, 255, 255, 0.03);
}
/* VIP / 金丹：金色描边卡（对照源站 jindan 金边） */
.k-talk .k-cm__item--vip,
.k-talk .k-cm__item[data-level-icon^="jindan-"] {
    --k-cm-accent: #f2b84b;
    --k-cm-accent-rgb: 242, 184, 75;
    --k-cm-author: #ffdc83;
    --k-cm-content: #fff0c5;
    --k-cm-glow: rgba(242, 184, 75, 0.18);
    border-color: rgba(242, 184, 75, 0.55);
    box-shadow:
        inset 0 0 0 1px rgba(242, 184, 75, 0.22),
        0 0 14px rgba(242, 184, 75, 0.16);
}
.k-talk .k-cm__item[data-level-icon^="zhuji-"] {
    --k-cm-accent: #48d5a6;
    --k-cm-accent-rgb: 72, 213, 166;
    --k-cm-author: #9cf0d4;
    --k-cm-content: #ddf8ef;
    --k-cm-glow: rgba(72, 213, 166, 0.14);
    border-color: rgba(72, 213, 166, 0.34);
    box-shadow: inset 2px 0 0 #48d5a6, 0 0 12px rgba(72, 213, 166, 0.12);
}
.k-talk .k-cm__item[data-level-icon^="yuanying-"] {
    --k-cm-accent: #6f9cf7;
    --k-cm-accent-rgb: 111, 156, 247;
    --k-cm-author: #b9ceff;
    --k-cm-content: #e1eaff;
    border-color: rgba(111, 156, 247, 0.4);
    box-shadow: inset 2px 0 0 #6f9cf7, 0 0 12px rgba(111, 156, 247, 0.14);
}
.k-talk .k-cm__item[data-level-icon^="huashen-"] {
    --k-cm-accent: #ee6f91;
    --k-cm-accent-rgb: 238, 111, 145;
    --k-cm-author: #ffb7ca;
    --k-cm-content: #ffe3eb;
    border-color: rgba(238, 111, 145, 0.42);
    box-shadow: inset 2px 0 0 #ee6f91, 0 0 12px rgba(238, 111, 145, 0.14);
}
.k-talk .k-cm__avatar {
    flex: none;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    overflow: hidden;
    border: 1px solid rgba(142, 231, 242, 0.22);
    background:
        radial-gradient(circle at 35% 25%, rgba(255, 255, 255, 0.28), transparent 38%),
        linear-gradient(135deg, rgba(103, 232, 249, 0.28), rgba(243, 201, 105, 0.18));
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.k-talk .k-cm__item--vip .k-cm__avatar,
.k-talk .k-cm__item[data-level-icon^="jindan-"] .k-cm__avatar {
    border-color: rgba(242, 184, 75, 0.55);
    box-shadow: 0 0 0 1px rgba(242, 184, 75, 0.2);
}
.k-talk .k-cm__avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.k-talk .k-cm__avatar-fallback {
    font-size: 11px;
    font-weight: 800;
    color: var(--k-text);
    line-height: 1;
}
.k-talk .k-cm__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.k-talk .k-cm__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.45rem;
    min-width: 0;
    font-size: 11px;
    color: var(--k-text-subtle);
}
.k-talk .k-cm__name {
    max-width: 9rem;
    font-size: 11px;
    font-weight: 700;
    color: var(--k-cm-author);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.k-talk .k-cm__item--vip .k-cm__name,
.k-talk .k-cm__item[data-level-icon^="jindan-"] .k-cm__name {
    text-shadow: 0 0 9px var(--k-cm-glow);
}
.k-talk .k-cm__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    height: 1.35rem;
    padding: 0 0.4rem 0 0.25rem;
    border-radius: 0.28rem;
    border: 1px solid rgba(152, 184, 201, 0.46);
    background: rgba(92, 126, 145, 0.2);
    color: #d7e5ec;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
}
.k-talk .k-cm__badge-dot {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 999px;
    background: radial-gradient(circle at 35% 30%, #fff8, transparent 55%), currentColor;
    opacity: 0.85;
    flex: none;
}
.k-talk .k-cm__badge--vip,
.k-talk .k-cm__badge[data-level-icon^="jindan-"] {
    border-color: rgba(242, 184, 75, 0.58);
    background: rgba(242, 184, 75, 0.18);
    color: #ffd875;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.k-talk .k-cm__badge--guest {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
    color: var(--k-text-subtle);
}
.k-talk .k-cm__time {
    color: var(--k-text-subtle);
    font-size: 11px;
}
.k-talk .k-cm__text {
    color: var(--k-cm-content);
    font-size: 0.8125rem;
    line-height: 1.4;
    word-break: break-word;
}
.k-talk .k-cm__text img {
    max-height: 1.2em;
    vertical-align: text-bottom;
}
.k-talk .k-cm__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    margin-top: 0.15rem;
    color: var(--k-text-subtle);
    font-size: 11px;
}
.k-talk .k-cm__join {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    padding: 0;
    cursor: pointer;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}
.k-talk .k-cm__join:hover {
    color: var(--k-text);
}
.k-talk .k-cm__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}
.k-talk .k-cm__act {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    height: 1.7rem;
    padding: 0 0.45rem;
    border-radius: 0.3rem;
    border: 1px solid var(--k-border-soft);
    background: transparent;
    color: var(--k-text-subtle);
    font: inherit;
    font-size: 11px;
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease;
}
.k-talk .k-cm__act:hover {
    color: var(--k-text);
    border-color: rgba(255, 255, 255, 0.22);
}
.k-talk .k-cm__act.is-on {
    border-color: var(--k-primary);
    color: var(--k-primary);
}
.k-talk .k-cm__act svg {
    display: block;
    flex: none;
}
.k-talk .k-cm__thread {
    margin: 0.15rem 0 0.35rem;
}
.k-talk .k-cm__toggle {
    appearance: none;
    border: 0;
    background: transparent;
    margin: 0.15rem 0 0 2.5rem;
    padding: 0;
    color: var(--k-primary);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.k-talk .k-cm__toggle:hover {
    filter: brightness(1.08);
}
.k-talk .k-cm__replies {
    margin: 0.45rem 0 0 2.5rem;
    padding: 0 0 0 0.7rem;
    border-left: 1px solid var(--k-border-soft);
    display: grid;
    gap: 0.45rem;
}
.k-talk .k-cm__replies-empty {
    margin: 0;
    font-size: 11px;
    color: var(--k-text-subtle);
}
.k-talk .k-cm__item--reply {
    /* nested replies already indented by .k-cm__replies */
    margin-left: 0;
}
.k-talk__reply-hint {
    margin: 0;
    padding: 0.2rem 0.15rem;
    font-size: 11px;
    color: var(--k-text-muted);
}
.k-talk__reply-hint b {
    color: var(--k-primary);
    font-weight: 700;
}
.k-talk .k-cm__reply-cancel,
.k-talk__reply-hint .k-cm__reply-cancel {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--k-text-subtle);
    font: inherit;
    font-size: 11px;
    margin-left: 0.35rem;
    cursor: pointer;
    text-decoration: underline;
}
.k-talk__list[data-k-cm-loading="1"] {
    opacity: 0.72;
}
/* also tighten empty/composer radius to match */
.k-talk__empty {
    border-radius: 0.4rem;
}
.k-talk__input,
.k-talk__send,
.k-talk__captcha-img,
.k-talk__captcha-input {
    border-radius: 0.4rem;
}

/* ── 反馈 inline 面板 ── */
.k-fb {
    display: none;
    padding: 0.75rem;
    border-bottom: 1px solid var(--k-border-soft);
}
.k-aside[data-k-panel="feedback"] .k-fb {
    display: block;
}
.k-aside[data-k-panel="feedback"] .k-blurb,
.k-aside[data-k-panel="feedback"] .k-ads,
.k-aside[data-k-panel="feedback"] [data-k-eps-panel],
.k-aside[data-k-panel="feedback"] .k-eps,
.k-aside[data-k-panel="feedback"] .k-discover,
.k-aside[data-k-panel="feedback"] .k-info,
.k-aside[data-k-panel="feedback"] .k-cast,
.k-aside[data-k-panel="feedback"] .k-talk {
    display: none !important;
}
.k-fb__title {
    margin: 0 0 0.75rem;
    font-size: var(--k-fs-md);
    font-weight: 700;
    color: var(--k-text);
}
.k-fb .k-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
    color: var(--k-text-muted);
    font-size: var(--k-fs-sm);
}
.k-fb .k-field > span {
    font-weight: 600;
    color: var(--k-text);
}
.k-fb .k-radios {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.875rem;
}
.k-fb .k-radios label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
}
.k-fb textarea {
    width: 100%;
    min-height: 6rem;
    padding: 0.625rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text);
    font: inherit;
    resize: vertical;
}
.k-fb textarea:focus {
    outline: none;
    border-color: var(--k-primary);
}
.k-fb__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* cast 面板也要藏 talk/fb */
.k-aside[data-k-panel="cast"] .k-talk,
.k-aside[data-k-panel="cast"] .k-fb {
    display: none !important;
}
.k-aside[data-k-panel="info"] .k-talk,
.k-aside[data-k-panel="info"] .k-fb {
    display: none !important;
}


button.k-eps__expand {
    font: inherit;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}
/* ==== player-opt-2026-10-11: quick/flip/cast-off ==== */

/* 侧栏 tab：投屏下掉后 3 列 */
.k-aside__tabs[data-k-tabs="3"],
.k-aside__tabs:not(:has([data-k-cast-tab])) {
    grid-template-columns: repeat(3, 1fr);
}
[data-k-cast-tab],
a[data-k-action="cast"],
.k-cast,
[data-k-cast-panel] {
    display: none !important;
}

/* 广告 flip：对照源站 .movie-player-info-flip（13.5rem）+ info-ad-slot；同一时间只显示一面 */
.k-flip {
    position: relative;
    isolation: isolate;
    height: 12.5rem; /* 收矮封面区：较源站 13.5rem 略矮，换一屏空间 */
    min-height: 12.5rem;
    margin: 0 0 0.35rem;
    display: grid;
}
.k-flip__face {
    display: none;
    grid-area: 1 / 1;
    min-width: 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}
.k-flip[data-flipped="1"] > .k-flip__back,
.k-flip:not([data-flipped="1"]) > .k-flip__front {
    display: block;
}
/* 详情面板展开时放高，避免 13.5rem 裁切 .k-info */
.k-aside[data-k-panel="info"] .k-flip {
    height: auto;
    min-height: 0;
    display: block;
}
.k-aside[data-k-panel="info"] .k-flip__front {
    height: auto;
    overflow: visible;
}
/* 广告面铺满 flip 高度 */
.k-flip__back > .k-ads {
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    margin: 0;
    border: 1px solid var(--k-border-soft);
    border-radius: 0.5rem;
    background: var(--k-surface, #25262b);
    padding: 0.5rem 0.75rem;
    overflow: hidden;
}
.k-flip__back .k-ads__grid {
    flex: 1 1 auto;
    min-height: 0;
}
.k-flip[data-flipped="1"] > .k-flip__front,
.k-flip:not([data-flipped="1"]) > .k-flip__back {
    display: none !important;
}
/* 详情面板打开时：强制显示 front（含 .k-info），隐藏广告面 */
.k-aside[data-k-panel="info"] .k-flip {
    data-flipped: 0; /* noop hint */
}
.k-aside[data-k-panel="info"] .k-flip > .k-flip__front {
    display: block !important;
}
.k-aside[data-k-panel="info"] .k-flip > .k-flip__back {
    display: none !important;
}

.k-ads__head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}
.k-ads__back {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    border: 0;
    background: transparent;
    color: var(--k-text-muted);
    font-size: var(--k-fs-sm);
    font-weight: 700;
    cursor: pointer;
    padding: 0.2rem 0.35rem;
    border-radius: 0.35rem;
}
.k-ads__back:hover {
    color: var(--k-text);
    background: rgb(255 255 255 / 6%);
}
.k-ads__title {
    flex: 1;
    font-size: var(--k-fs-sm);
    font-weight: 800;
    color: var(--k-text);
}
.k-ads__tag {
    font-size: 10px;
    color: var(--k-text-subtle);
    border: 1px solid var(--k-border-soft);
    border-radius: 0.25rem;
    padding: 0.1rem 0.35rem;
}

/* 简介动作行：片单/换源/下载/分享（无投屏）——毛玻璃嵌封面 */
.k-blurb__actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.375rem;
    margin-top: 0.5rem;
}
.k-blurb__act {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    min-height: 2.75rem;
    padding: 0.28rem 0.2rem;
    border-radius: 0.45rem;
    border: 1px solid var(--k-border-soft);
    background: var(--k-card-inner, var(--k-tint));
    color: var(--k-text);
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease, transform .12s ease;
}
.k-blurb--cover .k-blurb__act {
    color: rgba(255, 255, 255, 0.92);
    background: rgba(7, 13, 16, 0.5);
    border-color: rgba(255, 255, 255, 0.18);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.06), 0 2px 8px rgba(0, 0, 0, 0.12);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.72);
}
.k-blurb__act:hover {
    border-color: rgb(22 224 157 / 42%);
    background: rgb(22 224 157 / 8%);
}
.k-blurb--cover .k-blurb__act:hover {
    border-color: rgb(var(--k-primary-rgb) / 42%);
    background: rgba(7, 13, 16, 0.66);
}
.k-blurb__act:active { transform: scale(0.97); }
.k-blurb__act svg { color: var(--k-primary); }
.k-blurb--cover .k-blurb__act svg { color: rgba(255, 255, 255, 0.92); }

/* 快捷操作菜单（对照源站 support-menu） */
.k-quick {
    position: fixed;
    right: max(1.5rem, var(--k-safe-right, 0px));
    bottom: calc(2rem + var(--k-safe-bottom, 0px));
    z-index: 45;
    pointer-events: none;
}
.k-quick .k-fab,
.k-quick__menu,
.k-quick__backdrop {
    pointer-events: auto;
}
.k-quick.is-open {
    z-index: 80;
}
.k-quick.is-open .k-fab {
    visibility: hidden;
    pointer-events: none;
}
.k-quick__backdrop {
    position: fixed;
    inset: 0;
    z-index: 79;
    border: 0;
    background: rgba(3, 12, 15, 0.55);
    cursor: pointer;
}
.k-quick__menu {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.55rem);
    z-index: 81;
    width: min(24rem, calc(100vw - 2rem));
    max-height: min(70vh, 30rem);
    display: flex;
    flex-direction: column;
    border: 1px solid var(--k-border-soft);
    border-radius: 0.75rem;
    /* 对照源站 movie-bg-elevated：面板必须实底，不能用半透明 --k-card，否则透出选集格子 */
    background: var(--k-surface, #25262b);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.07), 0 14px 34px rgba(0, 0, 0, 0.32);
    overflow: hidden;
    transform-origin: 100% 100%;
    isolation: isolate;
}
.k-quick__menu[hidden],
.k-quick__backdrop[hidden] {
    display: none !important;
}
.k-quick__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 3.25rem;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--k-border-soft);
    background: var(--k-surface, #25262b);
}
.k-quick__title {
    font-size: 1rem;
    font-weight: 900;
    color: var(--k-text);
}
.k-quick__x {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    border: 1px solid var(--k-border-soft);
    background: var(--k-tint);
    color: var(--k-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.k-quick__x:hover { color: var(--k-text); }
.k-quick__body {
    display: grid;
    gap: 0.7rem;
    padding: 0.7rem 0.8rem 0.9rem;
    overflow: auto;
    overscroll-behavior: contain;
}
.k-quick__transport {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.4rem;
}
.k-quick__tr {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    min-height: 2.75rem;
    padding: 0.4rem 0.25rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-border-soft);
    background: var(--k-card-inner, var(--k-tint));
    color: var(--k-text);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
}
.k-quick__tr svg { color: var(--k-primary); flex: none; }
.k-quick__tr:hover {
    border-color: rgb(22 224 157 / 42%);
    background: rgb(22 224 157 / 10%);
}
.k-quick__tr:disabled {
    opacity: 0.42;
    cursor: not-allowed;
}
.k-quick__status {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.55rem;
    border-radius: 0.45rem;
    border: 1px solid var(--k-border-soft);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font-size: 12px;
    font-weight: 700;
}
.k-quick__dot {
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 999px;
    background: var(--k-primary);
    box-shadow: 0 0 10px rgb(22 224 157 / 50%);
}
.k-quick__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}
.k-quick__act {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.6rem 0.65rem;
    border-radius: 0.55rem;
    border: 1px solid var(--k-border-soft);
    background: var(--k-tint);
    color: var(--k-text);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease, transform .12s ease;
}
.k-quick__act:hover {
    border-color: rgb(22 224 157 / 42%);
    background: rgb(22 224 157 / 10%);
    transform: translateY(-1px);
}
.k-quick__act > svg {
    flex: none;
    color: var(--k-primary);
}
.k-quick__act-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}
.k-quick__act-text strong {
    font-size: 13px;
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.k-quick__act-text em {
    font-style: normal;
    font-size: 11px;
    color: var(--k-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1023.98px) {
    .k-quick {
        right: max(0.65rem, var(--k-safe-right, 0px));
        bottom: max(0.75rem, var(--k-safe-bottom, 0px));
    }
    .k-quick__menu {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-width: none;
        max-height: min(70vh, calc(100dvh - 8rem));
        border-radius: 0.75rem 0.75rem 0 0;
        transform-origin: bottom center;
    }
}

/* talk/feedback/cast 面板时整块 flip 隐藏，避免空壳占位 */
.k-aside[data-k-panel="talk"] .k-flip,
.k-aside[data-k-panel="feedback"] .k-flip,
.k-aside[data-k-panel="cast"] .k-flip {
    display: none !important;
}

/* ── onescreen-2026-10-11：简介卡收矮 + 桌面播放页视口锁（详见 player-art.css）── */
@media (min-width: 1024px) {
    #app-main:has(.k-watch) .k-flip,
    #app-main:has(.k-watch) .k-blurb {
        height: 12.5rem;
        min-height: 12.5rem;
    }
}

/* ── html.light talk comment cards ── */
/* 主评论卡此前硬编码 rgba(28,30,34,.92)，浅色下深底深字不可读；回复卡近透明反而浅底 */
html.light .k-talk .k-cm__item {
    --k-cm-author: var(--k-text-muted);
    --k-cm-content: var(--k-text);
    --k-cm-glow: transparent;
    background: #ffffff;
    color: var(--k-text);
    border-color: var(--k-interactive-border, rgba(23, 33, 29, 0.12));
    box-shadow: none;
}
html.light .k-talk .k-cm__item:hover {
    border-color: rgba(22, 224, 157, 0.35);
}
html.light .k-talk .k-cm__item--reply {
    background: var(--k-bg, #f4f7f5);
    border-color: rgba(23, 33, 29, 0.1);
}
html.light .k-talk .k-cm__badge {
    border-color: rgba(23, 33, 29, 0.14);
    background: rgba(23, 33, 29, 0.06);
    color: var(--k-text-muted);
}
html.light .k-talk .k-cm__badge--guest {
    border-color: rgba(23, 33, 29, 0.12);
    background: rgba(23, 33, 29, 0.04);
    color: var(--k-text-subtle);
}
html.light .k-talk .k-cm__badge--vip,
html.light .k-talk .k-cm__badge[data-level-icon^="jindan-"] {
    border-color: rgba(180, 120, 20, 0.45);
    background: rgba(242, 184, 75, 0.16);
    color: #9a6b00;
    box-shadow: none;
}
html.light .k-talk .k-cm__item--vip,
html.light .k-talk .k-cm__item[data-level-icon^="jindan-"] {
    --k-cm-author: #9a6b00;
    --k-cm-content: var(--k-text);
    --k-cm-glow: transparent;
    border-color: rgba(180, 120, 20, 0.4);
    box-shadow: inset 0 0 0 1px rgba(242, 184, 75, 0.18);
}
html.light .k-talk .k-cm__item[data-level-icon^="zhuji-"] {
    --k-cm-author: #0a7a56;
    --k-cm-content: var(--k-text);
    border-color: rgba(10, 122, 86, 0.28);
    box-shadow: inset 2px 0 0 #0a8f63;
}
html.light .k-talk .k-cm__item[data-level-icon^="yuanying-"] {
    --k-cm-author: #2f5bb8;
    --k-cm-content: var(--k-text);
    border-color: rgba(47, 91, 184, 0.28);
    box-shadow: inset 2px 0 0 #3d6fd6;
}
html.light .k-talk .k-cm__item[data-level-icon^="huashen-"] {
    --k-cm-author: #b03a5c;
    --k-cm-content: var(--k-text);
    border-color: rgba(176, 58, 92, 0.28);
    box-shadow: inset 2px 0 0 #d2557a;
}
html.light .k-talk .k-cm__item--vip .k-cm__name,
html.light .k-talk .k-cm__item[data-level-icon^="jindan-"] .k-cm__name {
    text-shadow: none;
}
html.light .k-talk .k-cm__avatar {
    border-color: rgba(22, 224, 157, 0.35);
}
html.light .k-talk .k-cm__act {
    border-color: rgba(23, 33, 29, 0.12);
    color: var(--k-text-muted);
}
html.light .k-talk .k-cm__act:hover {
    color: var(--k-text);
    border-color: rgba(23, 33, 29, 0.22);
}
html.light .k-talk .k-cm__join:hover {
    color: var(--k-text);
}
html.light .k-talk .k-cm__toggle {
    color: var(--k-primary);
}
html.light #k-overlay-portal .k-cm__item {
    background: #ffffff;
    color: var(--k-text);
    border-color: var(--k-interactive-border, rgba(23, 33, 29, 0.12));
}
html.light .k-talk .k-cm__replies .k-cm__item {
    background: #ffffff;
    color: var(--k-text);
    border-color: rgba(23, 33, 29, 0.1);
}
html.light .k-talk .k-cm__replies .k-cm__item--reply {
    background: var(--k-bg, #f4f7f5);
}

/* === PC播区对齐源站 kanju41：间距/圆角（min-width:1024；勿改≤760 .k-eps） === */
/* 源站硬测 1440：column-gap=8px、player/aside radius=0、sidebar=24.375rem、
   info rounded-lg=10px、discover rounded=4px、ep rounded=4px */
@media (min-width: 1024px) {
    .k-watch {
        gap: 0.5rem; /* 源站 --movie-player-column-gap:.5rem（原 0.75rem/12px） */
        grid-template-columns: minmax(0, 1fr) 24.375rem; /* 源站 390px（原 24.75rem/396px） */
    }

    /* 播区：源站 react-player-frame rounded-none */
    .k-watch > .k-player,
    .k-watch > .k-apt,
    .k-watch > .k-apt .k-apt__mount,
    .k-watch .k-player,
    .k-watch .k-apt,
    .k-watch .k-apt__mount {
        border-radius: 0;
    }

    /* 侧栏外壳：源站 movie-player-sidebar radius=0；水平 10px 内边距 */
    .k-watch > .k-aside {
        border-radius: 0;
        padding: 0 10px;
        box-sizing: border-box;
    }

    /* 标题条：贴近源站 page-header padding ~9px 12px（原 16px 0 8px） */
    .k-watch__head {
        padding: 0.5625rem 0.75rem;
        min-height: 4.5rem;
        gap: 0.75rem;
        border-radius: 0;
    }
    .k-watch__back {
        top: 0.5625rem;
        left: 0.75rem;
    }
    .k-watch__tools {
        top: 0.5625rem;
        right: 0.75rem;
    }

    /* 简介卡：源站 info-card rounded-lg = 10px */
    .k-watch .k-flip {
        border-radius: 0.625rem;
        overflow: hidden;
    }
    .k-watch .k-flip__front,
    .k-watch .k-info {
        border-radius: 0.625rem;
    }

    /* 选集格：源站 episode 按钮 rounded = 4px（原 0.5rem/8px）；H5≤760 规则不动 */
    .k-watch .k-eps__grid > a,
    .k-watch .k-eps__item {
        border-radius: 0.25rem;
    }
    .k-watch .k-eps__expand,
    .k-watch .k-eps__latest {
        border-radius: 0.25rem;
    }

    /* 继续发现：源站 movie-surface rounded = 4px（原 --k-radius 10px） */
    .k-watch .k-discover {
        border-radius: 0.25rem;
        margin: 0.75rem 0; /* 侧栏已有 10px 水平 padding，去掉左右 margin 叠距 */
    }
}
/* === /PC播区对齐源站 === */
