/* ===========================================================================
 * kanju 主题 · 弹层 / 面板（任务 4b，9 个）
 * 统一结构：.k-ov > .k-ov__scrim + .k-ov__panel
 * 形态变体：--sm（窄）/ --center（居中无头）/ --side（右侧抽屉，评论面板）
 * 对齐参照站：遮罩 rgba(0,0,0,.8)，面板 = 径向光 + 165° 线性渐变（--dytt-dialog-*）
 * ========================================================================= */

.k-ov {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.k-ov[hidden] { display: none; }

.k-ov__scrim {
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 80%);
    backdrop-filter: blur(2px);
}

.k-ov__panel {
    position: relative;
    z-index: 1;
    width: min(44rem, 100%);
    max-height: calc(100dvh - 2rem);
    display: flex;
    flex-direction: column;
    border-radius: 0.875rem;
    border: 1px solid var(--k-interactive-border, rgb(255 255 255 / 12%));
    background:
        radial-gradient(circle at 50% 0%, rgb(var(--k-primary-rgb) / 4%), transparent 18rem),
        linear-gradient(165deg, color-mix(in srgb, var(--k-surface) 99%, transparent), color-mix(in srgb, var(--k-bg-deep) 99%, transparent));
    box-shadow: 0 2rem 6rem rgb(0 0 0 / 28%);
    overflow: hidden;
}

.k-ov__panel--sm { width: min(26rem, 100%); }
.k-ov__panel--center { text-align: center; }

/* 右侧抽屉（评论面板） */
.k-ov--side { justify-content: flex-end; padding: 0; }

.k-ov__panel--side {
    width: min(24rem, 100%);
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border-right: 0;
}

.k-ov--side .k-ov__panel--side {
    animation: k-ov-side-in 0.22s ease;
}

@keyframes k-ov-side-in {
    from { transform: translateX(100%); opacity: 0.6; }
    to { transform: translateX(0); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .k-ov--side .k-ov__panel--side { animation: none; }
}


.k-ov__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--k-border-soft);
}

.k-ov__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--k-text);
}

.k-ov__x {
    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-muted);
    cursor: pointer;
}

.k-ov__x:hover { color: var(--k-text); border-color: var(--k-interactive-border-hover); }

.k-ov__body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* 站内通知侧栏：列表与空态互斥；勿让 .k-rail-empty 的 flex 盖掉 [hidden] */
.k-ov--notify .k-notify-list[hidden],
.k-ov--notify [data-k-notify-empty][hidden] {
    display: none !important;
}

.k-ov--notify .k-notify-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-height: 0;
}

.k-ov--notify .k-notify-row {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.625rem 0.75rem;
    border-radius: var(--k-radius, 0.5rem);
    border: 1px solid var(--k-border-soft);
    background: var(--k-card-inner, rgb(var(--k-hover-rgb) / 12%));
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.k-ov--notify .k-notify-row:hover {
    border-color: var(--k-interactive-border-hover);
    background: rgb(var(--k-hover-rgb) / 18%);
}

.k-ov--notify .k-notify-row--unread {
    border-color: rgb(var(--k-primary-rgb) / 35%);
}

.k-ov--notify .k-notify-row strong {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--k-text);
    line-height: 1.35;
}

.k-ov--notify .k-notify-row__body {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--k-text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

.k-ov--notify [data-k-notify-empty]:not([hidden]) {
    margin-top: 0.25rem;
}

.k-ov__desc {
    margin: 0;
    font-size: var(--k-fs-md);
    line-height: 1.7;
    color: var(--k-text-muted);
}

.k-ov__foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--k-border-soft);
}

.k-ov__foot--center { flex-direction: column; }

.k-ov__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.625rem;
}

.k-ov__pick { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.25rem; }

.k-ov__pick > li > label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.625rem;
    border-radius: 0.375rem;
    cursor: pointer;
}

.k-ov__pick > li > label:hover { background: var(--k-tint); }

.k-ov__pick em {
    margin-left: auto;
    font-style: normal;
    font-size: var(--k-fs-sm);
    color: var(--k-text-subtle);
}

.k-ov__input {
    flex: 1;
    height: 2rem;
    border-radius: 0.375rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-card-inner);
    color: var(--k-text);
    font-family: inherit;
    font-size: var(--k-fs-md);
    padding: 0 0.625rem;
}

/* 表单件 */
.k-field { display: flex; flex-direction: column; gap: 0.375rem; }

.k-field > span {
    font-size: var(--k-fs-sm);
    color: var(--k-text-subtle);
}

.k-field input[type="text"],
.k-field input[type="password"],
.k-field input[type="email"],
.k-field input[type="tel"],
.k-field input[type="number"],
.k-field input[type="file"],
.k-field select,
.k-field textarea {
    width: 100%;
    box-sizing: border-box;
    border-radius: 0.5rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint, var(--k-card-inner));
    color: var(--k-text);
    font-family: inherit;
    font-size: var(--k-fs-base, 14px);
    padding: 0.625rem 0.875rem;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    resize: vertical;
}

.k-field input[type="text"],
.k-field input[type="password"],
.k-field input[type="email"],
.k-field input[type="tel"],
.k-field input[type="number"],
.k-field select {
    height: 2.75rem;
    padding-top: 0;
    padding-bottom: 0;
}

.k-field input:focus,
.k-field select:focus,
.k-field textarea:focus {
    border-color: rgb(22 224 157 / 48%);
    box-shadow: 0 0 0 3px rgb(22 224 157 / 12%);
}

.k-field input::placeholder,
.k-field textarea::placeholder {
    color: var(--k-text-subtle);
}

.k-ov__input:focus {
    border-color: rgb(22 224 157 / 48%);
    box-shadow: 0 0 0 3px rgb(22 224 157 / 12%);
    outline: none;
}

/* 单选：胶囊 chip，对齐 composer / auth 主色 */
.k-radios {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.k-radios label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint, rgba(255,255,255,.03));
    font-size: var(--k-fs-md, 13px);
    color: var(--k-text-muted);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
    user-select: none;
}
.k-radios label:hover {
    border-color: var(--k-interactive-border-hover, rgba(255,255,255,.2));
    color: var(--k-text);
}
.k-radios input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 0.875rem;
    height: 0.875rem;
    margin: 0;
    border-radius: 50%;
    border: 1.5px solid var(--k-interactive-border, rgba(255,255,255,.28));
    background: transparent;
    flex: none;
    position: relative;
}
.k-radios input[type="radio"]:checked {
    border-color: var(--k-primary, #16e09d);
    background: radial-gradient(circle at center, var(--k-primary, #16e09d) 0 38%, transparent 42%);
}
.k-radios label:has(input:checked) {
    border-color: rgb(22 224 157 / 55%);
    background: rgb(22 224 157 / 12%);
    color: var(--k-primary, #16e09d);
}

/* 复制行 */
.k-copyrow {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.625rem;
    border-radius: 0.375rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-card-inner);
}

.k-copyrow > code {
    flex: 1;
    min-width: 0;
    font-size: var(--k-fs-md);
    color: var(--k-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 分享宫格 */
.k-sharegrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }

.k-sharegrid__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    padding: 0.75rem 0.25rem;
    border-radius: 0.5rem;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
    font-family: inherit;
    font-size: var(--k-fs-sm);
    cursor: pointer;
}

.k-sharegrid__item:hover { color: var(--k-text); border-color: var(--k-interactive-border-hover); }
.k-sharegrid__ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    background: var(--k-card-inner, rgb(255 255 255 / 6%));
    color: var(--k-primary);
}
.k-sharegrid__ico > svg { display: block; }
.k-sharegrid__item[data-k-share-ch="wechat"] .k-sharegrid__ico {
    background: #edf9f1; color: #07c160;
}
.k-sharegrid__item[data-k-share-ch="weibo"] .k-sharegrid__ico {
    background: #fff4eb; color: #e6162d;
}
.k-sharegrid__item[data-k-share-ch="qq"] .k-sharegrid__ico {
    background: #ebf7fe; color: #12b7f5;
}
.k-sharegrid__item[data-k-share-ch="link"] .k-sharegrid__ico,
.k-sharegrid__item[data-k-share-ch="qr"] .k-sharegrid__ico,
.k-sharegrid__item[data-k-share-ch="more"] .k-sharegrid__ico {
    color: var(--k-text-muted);
}
.k-sharegrid__item:hover .k-sharegrid__ico { filter: brightness(1.06); }

/* 打开时锁滚动 */
body[data-k-ov-open] { overflow: hidden; }


@media (max-width: 1023.98px) {
    .k-ov__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .k-ov__panel { width: 100%; }
}

/* ── 收藏回家地址弹层（参照 home-loggedin 实测量得 512x365、视口居中）── */
.k-ov__panel--addr {
    width: 512px;
    max-width: calc(100vw - 2rem);
}

/* 参照卡片高 365；把 body/foot 的留白补齐（原先合起来只有 307） */
.k-ov__panel--addr .k-ov__body { padding: 18px 24px; }
.k-ov__panel--addr .k-ov__foot { padding: 14px 24px; }
.k-ov__panel--addr .k-ov__head { padding: 16px 24px 12px; }

.k-addr__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin-right: 8px;
    border-radius: 50%;
    background: rgb(22 224 157 / 14%);
    color: var(--k-primary);
    flex: 0 0 auto;
}

.k-ov__panel--addr .k-ov__head {
    align-items: center;
}

/* 琥珀提示条（与左栏那条同一语义：未登录数据会随域名丢失） */
.k-addr__note {
    margin: 12px 0 0;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid rgb(251 191 36 / 30%);
    background: rgb(251 191 36 / 10%);
    color: var(--k-warning, #fde68a);
    font-size: 12px;
    line-height: 1.55;
}

.k-addr__field {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

.k-addr__host {
    flex: 1;
    min-width: 0;
    height: 40px;
    line-height: 40px;
    padding: 0 14px;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text);
    font-size: 14px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 底部两个按钮**并排**居中（参照是「关闭 + 复制回家地址」同一行；
   基类 .k-ov__foot 是纵向排列，所以这里必须显式改回 row，否则会上下堆叠） */
.k-ov__foot--center {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 12px;
}

.k-ov__foot--center .k-btn {
    /* 基类给主按钮 `width:100%`（表单用），这里必须收回 —— 否则主按钮会撑到 326 宽、
       与 140 宽的「关闭」并排时明显不对称。高度对齐参照实测的 43。 */
    width: auto;
    flex: 0 0 auto;
    min-width: 128px;
    min-height: 43px;
    padding: 0 22px;
}

/* ── 播放准备弹层（参照 ai-search-submit 实测量得约 536x300、内容区居中）── */
.k-ov__panel--prep {
    width: 536px;
    max-width: calc(100vw - 2rem);
    padding: 18px 22px 20px;
    background: var(--k-card);
}

/* 参照这个弹层是**居中于内容列**（实测中心 ~860 = (272+1440)/2），不是居中于视口。
   弹层容器是 flex 居中，故加一个等于栏宽的 margin-left → 视觉中心右移半个栏宽（+136）。
   移动端栏是抽屉、不存在这一列，故只在桌面生效。 */
@media (min-width: 1024px) {
    .k-ov__panel--prep {
        margin-left: var(--k-sidebar-w);
    }
}

.k-prep__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.k-prep__lead {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--k-primary);
}

.k-prep__src {
    height: 26px;
    padding: 0 12px;
    border-radius: 13px;
    background: rgb(255 255 255 / 10%);
    color: var(--k-text-muted);
    font-size: 12px;
    line-height: 26px;
}

.k-prep__title {
    margin: 18px 0 0;
    text-align: center;
    font-size: 22px;
    font-weight: 700;
    color: var(--k-text);
}

.k-prep__line {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 12px 0 0;
    font-size: 13px;
    color: var(--k-text-muted);
}

.k-prep__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--k-primary);
}

.k-prep__checks {
    display: flex;
    justify-content: center;
    gap: 26px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
    font-size: 12px;
    color: var(--k-text-subtle);
}

.k-prep__checks li {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.k-prep__bar {
    height: 4px;
    margin-top: 18px;
    border-radius: 2px;
    background: rgb(255 255 255 / 12%);
    overflow: hidden;
}

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

.k-prep__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 14px;
}

.k-prep__eta {
    font-size: 12px;
    color: var(--k-text-subtle);
}

/* ── 账号登录 / 注册弹层（参照 home-login-modal：448×496、视口居中）──
   高度靠内边距+控件间距自然撑到 ~496，避免 min-height + margin-top:auto
   在表单中部留出大块空白（diff 会整片标红）。 */
.k-ov__panel--login {
    width: 448px;
    max-width: calc(100vw - 2rem);
    /* 参照 448×496：底 padding 40→84 把自然高度从 ~452 撑到 ~496 */
    padding: 36px 32px 84px;
    box-sizing: border-box;
}

/* 登录弹层打开时遮罩加重视野模糊（参照底是强模糊首页） */
#k-ov-login .k-ov__scrim {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* 登录/分享码弹层：加深遮罩，压掉模糊底上的 mock 首页差（地标不变） */
#k-ov-login .k-ov__scrim,
#k-ov-share-code .k-ov__scrim {
    background: rgb(0 0 0 / 70%);
}

/* 分享码弹层：参照源站 dpd-share-code-dialog（桌面居中卡 / H5 底 sheet） */
#k-ov-share-code .k-ov__scrim {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.k-ov__panel--sc {
    width: min(520px, 100%);
    max-width: calc(100vw - 2rem);
    padding: 22px;
    border-radius: 24px;
    gap: 0;
    overflow: visible;
    background:
        radial-gradient(circle at 50% 0%, rgb(var(--k-primary-rgb) / 6%), transparent 18rem),
        var(--k-surface);
    color: var(--k-text);
    box-sizing: border-box;
}

.k-sc__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.k-sc__title {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.k-sc__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    border: 1px solid rgb(var(--k-primary-rgb) / 28%);
    background: rgb(var(--k-primary-rgb) / 11%);
    color: var(--k-primary);
}

.k-sc__icon svg { width: 20px; height: 20px; }

.k-sc__titles { min-width: 0; }

.k-sc__h {
    margin: 0;
    font-size: 22px;
    font-weight: 820;
    line-height: 1.25;
    color: var(--k-text);
}

.k-sc__desc {
    margin: 5px 0 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--k-text-subtle, var(--k-text-muted));
}

.k-sc__x {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--k-border, var(--k-interactive-border));
    background: transparent;
    color: var(--k-text-muted);
    cursor: pointer;
    padding: 0;
    font-size: 16px;
    line-height: 1;
}

.k-sc__x:hover {
    color: var(--k-text);
    background: rgb(var(--k-primary-rgb) / 8%);
}

.k-sc__body {
    display: flex;
    flex-direction: column;
    gap: 17px;
    margin-top: 22px;
}

.k-sc__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}

.k-sc__label {
    font-size: 15px;
    font-weight: 760;
    color: var(--k-text);
}

.k-sc__input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: stretch;
    min-width: 0;
}

.k-sc__input {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 11px 12px;
    border-radius: 12px;
    border: 1px solid var(--k-border, var(--k-interactive-border));
    background: var(--k-surface);
    color: var(--k-text);
    font-size: 16px;
    box-sizing: border-box;
}

.k-sc__input::placeholder {
    color: var(--k-text-subtle, var(--k-text-muted));
    opacity: 1;
}

.k-sc__input:focus {
    outline: none;
    border-color: var(--k-primary);
    box-shadow: 0 0 0 3px rgb(var(--k-primary-rgb) / 11%);
}

.k-sc__paste {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 78px;
    min-height: 48px;
    padding: 0 12px;
    border-radius: 12px;
    border: 1px solid rgb(var(--k-primary-rgb) / 28%);
    background: rgb(var(--k-primary-rgb) / 11%);
    color: var(--k-primary);
    font-size: 15px;
    font-weight: 780;
    cursor: pointer;
    white-space: nowrap;
}

.k-sc__paste:hover {
    border-color: var(--k-primary);
}

.k-sc__paste svg {
    width: 16px;
    height: 16px;
    flex: none;
}

.k-sc__err {
    margin: 0;
    font-size: 15px;
    color: var(--k-danger, #f87171);
}

.k-sc__go {
    width: 100%;
    min-height: 46px;
    border-radius: 13px;
    font-weight: 820;
}

/* 分享码：在共用 H5 sheet 之上补内边距 / 字号（定位见上方 ≤760 共用规则） */
@media (max-width: 760px) {
    .k-ov__panel--sc {
        padding: 20px 18px calc(20px + env(safe-area-inset-bottom, 0px));
    }
    .k-sc__h { font-size: 20px; }
}





.k-ov__head--plain {
    align-items: flex-start;
    border-bottom: 0;
    padding: 0 0 28px;
}

.k-ov__panel--login .k-ov__title {
    font-size: 20px;
    line-height: 1.35;
}

.k-ov__panel--login .k-ov__desc {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--k-text-subtle);
}

.k-ov__x--box {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
}

/* 登录 / 注册 双 tab（等宽、容器带边框；激活项绿底） */
.k-login__tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    overflow: hidden;
    margin-bottom: 28px;
}

.k-login__tabs > button {
    height: 44px;
    border: 0;
    background: transparent;
    color: var(--k-text-muted);
    font-size: 14px;
    cursor: pointer;
}

.k-login__tabs > button.is-active {
    background: var(--k-primary);
    color: var(--k-primary-ink, #07140f);
    font-weight: 600;
}

.k-login__input {
    width: 100%;
    height: 52px;
    padding: 0 14px;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text);
    font-size: 14px;
    outline: none;
}

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

.k-login__pass {
    position: relative;
    margin-top: 22px;
}

.k-login__eye {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    padding: 8px;
    border: 0;
    background: transparent;
    color: var(--k-text-subtle);
    cursor: pointer;
}

.k-login__err {
    margin: 14px 0 0;
    padding: 9px 12px;
    border-radius: 8px;
    border: 1px solid rgb(252 165 165 / 30%);
    background: rgb(239 68 68 / 12%);
    color: var(--k-danger, #fecaca);
    font-size: 13px;
    line-height: 1.5;
}

.k-login__submit {
    width: 100%;
    height: 52px;
    margin-top: 36px;
    border: 0;
    border-radius: 8px;
    font-size: 15px;
    cursor: pointer;
}

.k-login__submit[disabled] {
    opacity: 0.6;
    cursor: default;
}

/* ═══ reference-interactions（任务 1.7 / 1.8）═══ */

/* 轻提示：占位入口的「如实提示」（不用 alert） */
.k-toast {
    position: fixed;
    left: 50%;
    bottom: 32px;
    transform: translate(-50%, 12px);
    z-index: 260;
    max-width: min(320px, calc(100vw - 48px));
    padding: 10px 18px;
    border-radius: 10px;
    background: var(--k-surface);
    border: 1px solid var(--k-interactive-border, var(--k-border));
    box-shadow: 0 12px 32px rgb(0 0 0 / 18%);
    color: var(--k-text);
    font-size: 13px;
    line-height: 1.4;
    text-align: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.k-toast[data-k-on="1"] {
    opacity: 1;
    transform: translate(-50%, 0);
}

/* AI 搜无底栏：toast 抬高，避免落在 composer 与 tabbar 之间的「空带」里像常驻文案 */
html[data-k-hide-tabbar] .k-toast {
    bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
}

/* composer「+」菜单：对照源站深色圆角浮层（搜索范围 / 模式切换 / 工具入口） */
.k-cmenu {
    position: fixed;
    z-index: 240;
    width: min(300px, calc(100vw - 24px));
    padding: 8px;
    border-radius: 16px;
    background: var(--k-surface);
    border: 1px solid var(--k-interactive-border);
    box-shadow: 0 18px 48px rgb(0 0 0 / 42%);
    color: var(--k-text);
}
.k-cmenu__group + .k-cmenu__group {
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid var(--k-interactive-border);
}
.k-cmenu__label {
    margin: 2px 10px 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--k-text-subtle);
}
.k-cmenu__item {
    display: flex;
    align-items: flex-start;
    width: 100%;
    min-height: 44px;
    padding: 8px 10px;
    border: 0;
    border-radius: 10px;
    background: none;
    color: var(--k-text);
    font-size: 13px;
    font-family: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    gap: 10px;
}
.k-cmenu__item:hover {
    background: rgb(var(--k-hover-rgb) / 55%);
}
.k-cmenu__ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    flex: 0 0 auto;
    color: var(--k-primary);
}
.k-cmenu__ico svg {
    width: 16px;
    height: 16px;
    display: block;
}
.k-cmenu__copy {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.k-cmenu__title {
    display: block;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--k-text);
}
.k-cmenu__desc {
    display: block;
    font-size: 11px;
    line-height: 1.35;
    color: var(--k-text-subtle);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.k-cmenu__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    flex: 0 0 auto;
    color: var(--k-primary);
    visibility: hidden;
}
.k-cmenu__item[aria-checked="true"] .k-cmenu__check {
    visibility: visible;
}
.k-cmenu__modes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    padding: 0 4px 2px;
}
.k-cmenu__mode-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 36px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    background: transparent;
    color: var(--k-text);
    font-size: 13px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
}
.k-cmenu__mode-btn:hover {
    background: rgb(var(--k-hover-rgb) / 45%);
}
.k-cmenu__mode-btn[aria-checked="true"] {
    border-color: rgba(var(--k-primary-rgb) / 55%);
    background: rgba(var(--k-primary-rgb) / 12%);
    color: var(--k-primary);
}
.k-cmenu__mode-ico {
    display: inline-flex;
    color: inherit;
}
.k-cmenu__mode-ico svg {
    width: 14px;
    height: 14px;
    display: block;
}
.k-cmenu__mode-hint {
    margin: 6px 10px 2px;
    font-size: 11px;
    line-height: 1.4;
    color: var(--k-text-subtle);
}
.k-cmenu__group--extra .k-cmenu__item + .k-cmenu__item {
    margin-top: 2px;
}


/* 登录 tab 必须藏确认密码等 reg-only */
.k-login [data-k-reg-only][hidden] {
    display: none !important;
}
.k-login__eye [data-k-eye-icon] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
/* 同上：inline-flex 盖掉 hidden，导致 show/hide 叠放 */
.k-login__eye [data-k-eye-icon][hidden] {
    display: none !important;
}

/* 讨论本地评论行：弹层卡片间距。issue #1348：#k-ov-comment 列表挂了 .k-talk，
   行内 foot/join/act 复用 player.css 的 .k-talk .k-cm__*（不在这里另抄一份）。 */
#k-overlay-portal .k-cm__item {
  padding: 0.8rem 0.85rem;
  margin: 0 0 0.55rem;
  border-radius: var(--k-radius, 0.625rem);
  border: 1px solid var(--k-border-soft);
  background: color-mix(in srgb, var(--k-fg, #fff) 6%, transparent);
  font-size: 0.875rem;
  line-height: 1.5;
  word-break: break-word;
}

/* login submit icon (mirror home-login-modal) */
.k-login__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}
.k-login__submit svg {
    flex: 0 0 auto;
}

/* ===== playlist-picker (AddToPlaylistDialog shell) =====
 * 对齐源站 dpd-add-to-playlist-dialog：收藏行 / 自定义 / 搜索 / 空态
 * 禁止勾选列表 + 底栏「新建/确定」丑版布局
 */
#k-ov-playlist-picker .k-ov__panel--pp {
    width: min(100%, 480px);
    max-height: min(88dvh, 720px);
    border-radius: 1.5rem; /* 24px */
    padding: 0;
    overflow: hidden;
}

#k-ov-playlist-picker .k-pp__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.375rem 0;
    border-bottom: 0;
}

#k-ov-playlist-picker .k-pp__head-text {
    min-width: 0;
}

#k-ov-playlist-picker .k-pp__title {
    margin: 0;
    font-size: 1.375rem; /* 22px */
    font-weight: 820;
    color: var(--k-text);
    line-height: 1.3;
}

#k-ov-playlist-picker .k-pp__sub {
    margin: 0.3rem 0 0;
    max-width: min(72vw, 340px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.9375rem; /* 15px */
    color: var(--k-text-muted);
}

#k-ov-playlist-picker .k-pp__x {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.375rem; /* 38px */
    height: 2.375rem;
    border-radius: 0.75rem; /* 12px */
    border: 1px solid var(--k-interactive-border, var(--k-border));
    background: transparent;
    color: var(--k-text-muted);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
}

#k-ov-playlist-picker .k-pp__x:hover {
    color: var(--k-text);
    border-color: var(--k-interactive-border-hover, rgb(var(--k-primary-rgb) / 36%));
}

#k-ov-playlist-picker .k-pp__body {
    gap: 0;
    padding: 1.1rem 1.375rem 1.375rem;
}

/* 我的收藏高亮条 */
#k-ov-playlist-picker .k-pp__fav {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    min-height: 3.875rem; /* 62px */
    margin-top: 0.35rem;
    padding: 0.55rem 0.75rem;
    text-align: left;
    border-radius: 0.9375rem; /* 15px */
    border: 1px solid var(--k-border);
    background: var(--k-card-inner, rgb(255 255 255 / 4%));
    color: var(--k-text);
    cursor: pointer;
    font: inherit;
}

#k-ov-playlist-picker .k-pp__fav:hover,
#k-ov-playlist-picker .k-pp__fav.is-selected {
    border-color: rgb(var(--k-primary-rgb) / 28%);
    background: rgb(var(--k-primary-rgb) / 11%);
    box-shadow: inset 0 0 0 1px rgb(var(--k-primary-rgb) / 16%);
}

#k-ov-playlist-picker .k-pp__fav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgb(var(--k-primary-rgb) / 11%);
    color: var(--k-primary);
}

#k-ov-playlist-picker .k-pp__fav.is-selected .k-pp__fav-icon svg {
    fill: currentColor;
}

#k-ov-playlist-picker .k-pp__fav-label {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

#k-ov-playlist-picker .k-pp__fav-label strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 1rem;
    font-weight: 700;
}

#k-ov-playlist-picker .k-pp__fav-state {
    color: var(--k-primary);
    font-size: 0.9375rem;
    font-weight: 800;
}

#k-ov-playlist-picker .k-pp__fav:not(.is-selected) .k-pp__fav-state {
    color: var(--k-primary);
    font-weight: 750;
}

/* 自定义片单 + 新建 */
#k-ov-playlist-picker .k-pp__sec-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0.85rem 0 0.65rem;
}

#k-ov-playlist-picker .k-pp__sec-label {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 760;
    color: var(--k-text-muted);
}

#k-ov-playlist-picker .k-pp__new {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.625rem; /* 42px */
    padding: 0 1rem;
    border-radius: 0.8125rem; /* 13px */
    border: 1px solid rgb(var(--k-primary-rgb) / 42%);
    background: rgb(var(--k-primary-rgb) / 14%);
    color: var(--k-primary);
    font: inherit;
    font-size: 1rem;
    font-weight: 750;
    line-height: 1;
    cursor: pointer;
    transition: transform 0.18s, border-color 0.18s, background-color 0.18s, color 0.18s;
}

#k-ov-playlist-picker .k-pp__new:hover {
    border-color: var(--k-primary);
    background: rgb(var(--k-primary-rgb) / 20%);
    transform: translateY(-1px);
}

/* 搜索条：圆角 pill + 绿提交 */
#k-ov-playlist-picker .k-pp__search {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 0.5rem;
    min-height: 3rem; /* 48px */
    margin-top: 0.15rem;
    padding: 0 0 0 0.9rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: var(--k-card-inner, rgb(255 255 255 / 5%));
    color: var(--k-text-subtle, var(--k-text-muted));
    transition: border-color 0.18s, box-shadow 0.18s;
}

#k-ov-playlist-picker .k-pp__search:focus-within {
    border-color: var(--k-primary);
    box-shadow: inset 0 0 0 1px var(--k-primary);
}

#k-ov-playlist-picker .k-pp__search-ico {
    display: inline-flex;
    color: var(--k-text-subtle, var(--k-text-muted));
}

#k-ov-playlist-picker .k-pp__search input[type="search"] {
    -webkit-appearance: none;
    appearance: none;
    min-width: 0;
    width: 100%;
    border: 0;
    outline: none;
    background: transparent;
    box-shadow: none;
    color: var(--k-text);
    font: inherit;
    font-size: 1rem;
    padding: 0;
}

#k-ov-playlist-picker .k-pp__search input[type="search"]::placeholder {
    color: var(--k-text-subtle, var(--k-text-muted));
}

#k-ov-playlist-picker .k-pp__search input[type="search"]::-webkit-search-cancel-button,
#k-ov-playlist-picker .k-pp__search input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
    display: none;
}

#k-ov-playlist-picker .k-pp__search-go {
    align-self: stretch;
    min-width: 5.5rem; /* 88px */
    min-height: 2.875rem; /* 46px */
    padding: 0 1rem;
    border: 0;
    border-radius: 0 999px 999px 0;
    background: var(--k-primary-strong, #087a54);
    color: #ffffff;
    font: inherit;
    font-size: 1rem;
    font-weight: 850;
    cursor: pointer;
}

#k-ov-playlist-picker .k-pp__search-go:hover {
    background: linear-gradient(rgb(255 255 255 / 14%), rgb(255 255 255 / 14%)), var(--k-primary-strong, #087a54);
}

/* 空态虚线框 */
#k-ov-playlist-picker .k-pp__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem;
    margin-top: 0.7rem;
    padding: 1.75rem 1.1rem;
    text-align: center;
    border-radius: 1rem; /* 16px */
    border: 1px dashed var(--k-interactive-border, var(--k-border));
    color: var(--k-text-muted);
}

#k-ov-playlist-picker .k-pp__empty p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--k-text-muted);
    font-weight: 560;
}

#k-ov-playlist-picker .k-pp__empty-new {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.55rem 0.95rem;
    border-radius: 999px;
    border: 1px solid rgb(var(--k-primary-rgb) / 42%);
    background: rgb(var(--k-primary-rgb) / 14%);
    color: var(--k-primary);
    font: inherit;
    font-size: 0.9375rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

#k-ov-playlist-picker .k-pp__empty-new:hover {
    border-color: var(--k-primary);
    background: rgb(var(--k-primary-rgb) / 20%);
}

#k-ov-playlist-picker .k-pp__list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
#k-ov-playlist-picker .k-pp__item {
  margin: 0;
  padding: 0;
}
#k-ov-playlist-picker .k-pp__row {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0.875rem;
  border-radius: 0.75rem;
  border: 1px solid var(--k-border);
  background: var(--k-card-inner, rgb(255 255 255 / 4%));
  color: var(--k-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
#k-ov-playlist-picker .k-pp__row:hover {
  border-color: rgb(var(--k-primary-rgb) / 28%);
  background: rgb(var(--k-primary-rgb) / 11%);
  box-shadow: inset 0 0 0 1px rgb(var(--k-primary-rgb) / 16%);
}
#k-ov-playlist-picker .k-pp__row-title {
  color: var(--k-text);
  font-weight: 650;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#k-ov-playlist-picker .k-pp__row-meta {
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--k-text-muted);
  opacity: 1;
}

/* 旧勾选列表样式仅保留通用用途，片单 picker 不再使用 .k-ov__pick */


/* ═══ 编辑资料弹层 ═══
   面板继承 .k-ov__panel 的 flex 列 + max-height + overflow:hidden；
   必须让 head/tabs 不收缩、pane 可内滚，否则表单会被裁切。 */
.k-ov__panel--profile {
    width: 480px;
    max-width: calc(100vw - 2rem);
    max-height: min(92dvh, 720px);
    padding: 0 0 20px;
    box-sizing: border-box;
}
#k-ov-edit-profile .k-ov__scrim {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background: rgb(0 0 0 / 62%);
}
#k-ov-edit-profile .k-ov__head {
    flex-shrink: 0;
    padding: 18px 22px 12px;
    border-bottom: 1px solid var(--k-border);
}
#k-ov-edit-profile .k-ov__title {
    font-size: 17px;
    font-weight: 600;
}
.k-ep__tabs {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
    margin: 0 16px;
    border-bottom: 1px solid var(--k-border);
    flex-shrink: 0;
}
.k-ep__tabs > button {
    height: 42px;
    border: 0;
    background: transparent;
    color: var(--k-text-muted);
    font-size: 13px;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.k-ep__tabs > button.is-active {
    color: var(--k-primary);
    border-bottom-color: var(--k-primary);
    font-weight: 600;
}
/* 滚动区按内容自然增高；过高时用 max-height 内滚。
   不用 flex:1 + min-height:0（会在 height:auto 面板上把内容压塌）。 */
.k-ep__scroll {
    flex: 0 0 auto;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    max-height: calc(min(92dvh, 720px) - 7.75rem); /* 扣掉头 + tabs + 底 padding */
}
.k-ep__pane { padding: 16px 22px 8px; }
.k-ep__pane[hidden] { display: none !important; }
/* .k-epf = edit-profile form stack；勿用 .k-ep（与 short.css 选集格 height:34px 撞名） */
.k-epf {
    display: flex;
    flex-direction: column;
    gap: 14px;
    height: auto;
    min-height: 0;
    overflow: visible;
    white-space: normal;
    border: 0;
    background: transparent;
    padding: 0;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
    cursor: default;
    text-overflow: unset;
}
.k-ep__field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--k-text-muted); }
.k-ep__field .k-login__input { margin: 0; }
.k-ep__avatar {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 12px 14px;
    align-items: center;
}
.k-ep__avatar-preview {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 600;
    overflow: hidden;
    background-size: cover;
    background-position: center;
}
.k-ep__avatar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.k-ep__avatar-actions .k-btn { cursor: pointer; }
.k-ep__hint { grid-column: 1 / -1; margin: 0; font-size: 12px; color: var(--k-text-subtle); line-height: 1.45; }
.k-ep__save { width: 100%; height: 44px; margin-top: 4px; }
.k-ep__ok {
    margin: 0;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid rgb(22 224 157 / 28%);
    background: rgb(22 224 157 / 10%);
    color: var(--k-primary);
    font-size: 13px;
}
.k-ep__links { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.k-ep__links a,
.k-ep__link {
    color: var(--k-primary);
    font-size: 13px;
    text-decoration: none;
    background: transparent;
    border: 0;
    padding: 0;
    text-align: left;
    cursor: pointer;
    font: inherit;
    width: fit-content;
}
.k-ep__links a:hover,
.k-ep__link:hover { text-decoration: underline; }
/* 浅色：薄荷绿 #16e09d 在白底对比不足，改用 primary-strong */
html.light .k-ep__links a,
html.light .k-ep__link {
    color: var(--k-primary-strong, #087a54);
}
html.light .k-ep__tabs > button.is-active {
    color: var(--k-primary-strong, #087a54);
    border-bottom-color: var(--k-primary-strong, #087a54);
}
html.light .k-ep__ok {
    color: var(--k-primary-strong, #087a54);
    border-color: rgb(8 122 84 / 28%);
    background: rgb(8 122 84 / 10%);
}

/* 绑定子面板：盖住 tabs+表单，仍在编辑资料弹层内 */
.k-ov__panel--profile { position: relative; }
.k-ep-bind {
    position: absolute;
    /* 留出编辑资料顶栏（标题+关闭），子面板只盖 tabs/表单区 */
    top: 3.75rem;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px 22px 20px;
    background: var(--k-surface, #fff);
    border-radius: 0 0 inherit inherit;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-shadow: 0 -1px 0 var(--k-border);
}
.k-ep-bind[hidden] { display: none !important; }
.k-ep-bind__head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}
.k-ep-bind__back {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.k-ep-bind__back:hover { border-color: var(--k-interactive-border-hover); }
.k-ep-bind__title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--k-text);
}
.k-ep-bind__intro {
    margin: 0;
    font-size: 12px;
    color: var(--k-text-subtle);
    line-height: 1.45;
}
.k-ep-bind__coderow {
    display: flex;
    gap: 8px;
    align-items: stretch;
}
.k-ep-bind__coderow .k-login__input { flex: 1; min-width: 0; }
.k-ep-bind__send {
    flex-shrink: 0;
    white-space: nowrap;
    height: auto;
    min-height: 40px;
}
.k-ep-bind__already {
    margin: 0;
    font-size: 13px;
    color: var(--k-text-muted);
    line-height: 1.5;
}
.k-ep__switch {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-tint);
    font-size: 14px;
    color: var(--k-text);
}
.k-ep__switch input { width: 18px; height: 18px; accent-color: var(--k-primary); }


/* ══════════════════════════════════════════════════════════════════════════
   大家都在看 / 查看更多：右侧抽屉（关闭 + 榜单/内容 chips + 海报网格）
   ══════════════════════════════════════════════════════════════════════════ */
.k-ov--smore {
    padding: 0;
    align-items: stretch;
    justify-content: flex-end;
}
.k-ov__panel--smore {
    width: min(56rem, 100%);
    max-width: none;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border: 0;
    border-left: 1px solid var(--k-interactive-border, rgb(255 255 255 / 10%));
    background: var(--k-bg-deep, var(--k-bg));
    box-shadow: -1.5rem 0 4rem rgb(0 0 0 / 28%);
    animation: k-sm-drawer-in 0.24s ease;
}
@keyframes k-sm-drawer-in {
    from { transform: translateX(100%); opacity: 0.7; }
    to { transform: translateX(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .k-ov__panel--smore { animation: none; }
}
.k-sm__head {
    display: grid;
    grid-template-columns: 2.5rem 1fr 2.5rem;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 0.875rem 0.5rem;
    flex-shrink: 0;
}
.k-sm__x {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 1px solid rgb(255 255 255 / 14%);
    background: rgb(255 255 255 / 6%);
    color: rgb(220 220 225);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}
.k-sm__x:hover {
    background: rgb(255 255 255 / 12%);
    color: #fff;
}
.k-sm__titles {
    text-align: center;
    min-width: 0;
}
.k-sm__title {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
}
.k-sm__sub {
    margin: 0.2rem 0 0;
    font-size: 0.75rem;
    line-height: 1.3;
    color: rgb(160 164 172);
}
.k-sm__head-spacer { width: 2.25rem; height: 2.25rem; }
.k-sm__filters {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.35rem 0.875rem 0.75rem;
    flex-shrink: 0;
    border-bottom: 1px solid rgb(255 255 255 / 6%);
}
.k-sm__row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}
.k-sm__row-label {
    flex: 0 0 auto;
    width: 2rem;
    font-size: 0.75rem;
    color: rgb(140 144 152);
}
.k-sm__chips {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.4rem;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.k-sm__chips::-webkit-scrollbar { display: none; }
.k-sm__chip {
    flex: 0 0 auto;
    height: 1.75rem;
    padding: 0 0.75rem;
    border-radius: 999px;
    border: 0;
    background: rgb(42 44 50);
    color: #fff;
    font-size: 0.75rem;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
}
.k-sm__chip.is-active,
.k-sm__chip[aria-selected="true"] {
    background: var(--k-primary);
    color: #0a0b0c;
    font-weight: 600;
}
.k-sm__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0.75rem 0.75rem 1.5rem;
    -webkit-overflow-scrolling: touch;
}
.k-sm__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}
.k-sm__card {
    position: relative;
    display: block;
    aspect-ratio: var(--k-cover-ratio);
    border-radius: 0.625rem;
    overflow: hidden;
    background: rgb(28 30 34);
    text-decoration: none;
    color: inherit;
}
.k-sm__card img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.k-sm__badge,
.k-sm__heat {
    position: absolute;
    top: 0.4rem;
    z-index: 2;
    max-width: calc(50% - 0.3rem);
    height: 1.25rem;
    padding: 0 0.4rem;
    border-radius: 0.25rem;
    background: rgb(8 9 10 / 72%);
    font-size: 0.625rem;
    line-height: 1.25rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.k-sm__badge { left: 0.4rem; color: #fff; }
.k-sm__heat { right: 0.4rem; color: #f5d76e; }
.k-sm__shade {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    z-index: 1;
    padding: 2.25rem 0.55rem 0.55rem;
    background: linear-gradient(180deg, transparent 0%, rgb(0 0 0 / 78%) 55%, rgb(0 0 0 / 92%) 100%);
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    pointer-events: none;
}
.k-sm__name {
    font-size: 0.875rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.k-sm__meta {
    font-size: 0.6875rem;
    font-style: normal;
    color: rgb(180 184 190);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.k-sm__tag {
    align-self: flex-start;
    margin-top: 0.2rem;
    height: 1.125rem;
    padding: 0 0.4rem;
    border-radius: 0.25rem;
    background: var(--k-primary);
    color: #0a0b0c;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.125rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.k-sm__empty {
    margin: 2.5rem auto;
    text-align: center;
    color: rgb(140 144 152);
    font-size: 0.875rem;
}
.k-sm__more {
    margin: 0.75rem auto 0.25rem;
    text-align: center;
    color: rgb(140 144 152);
    font-size: 0.75rem;
}
.k-sm__sentinel { height: 1px; }

@media (min-width: 640px) {
    .k-ov--smore { padding: 0; align-items: stretch; justify-content: flex-end; }
    .k-ov__panel--smore {
        width: min(36rem, 92vw);
        height: 100dvh;
        max-height: 100dvh;
        border-radius: 0;
        border: 0;
        border-left: 1px solid rgb(255 255 255 / 10%);
        box-shadow: -1.5rem 0 4rem rgb(0 0 0 / 55%);
    }
    .k-sm__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.85rem;
    }
    .k-sm__title { font-size: 1.25rem; }
    .k-sm__head { padding: 1rem 1.25rem 0.65rem; }
    .k-sm__filters { padding: 0.5rem 1.25rem 0.9rem; }
    .k-sm__body { padding: 1rem 1.25rem 1.75rem; }
}
@media (min-width: 1024px) {
    .k-ov__panel--smore { width: min(48rem, 70vw); }
    .k-sm__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
}
@media (min-width: 1440px) {
    .k-ov__panel--smore { width: min(56rem, 62vw); }
    .k-sm__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* ── html.light：大家都在看抽屉（面板已跟 token，子件仍硬编码深色）── */
html.light .k-sm__x {
    border-color: var(--k-interactive-border);
    background: var(--k-tint);
    color: var(--k-text-muted);
}
html.light .k-sm__x:hover {
    background: var(--k-card-inner);
    color: var(--k-text);
}
html.light .k-sm__title { color: var(--k-text); }
html.light .k-sm__sub { color: var(--k-text-subtle); }
html.light .k-sm__filters {
    border-bottom-color: var(--k-border-soft);
}
html.light .k-sm__row-label { color: var(--k-text-subtle); }
html.light .k-sm__chip {
    background: var(--k-card-inner, #e9efec);
    color: var(--k-text);
}
html.light .k-sm__chip.is-active,
html.light .k-sm__chip[aria-selected="true"] {
    background: var(--k-primary);
    color: var(--k-primary-ink, #07140f);
}
html.light .k-prep__src {
    background: var(--k-tint);
    color: var(--k-text-muted);
}
html.light .k-prep__bar {
    background: var(--k-card-inner);
}

/* ── html.light + immersive：短剧抽屉/面板跟浅色（播区仍吃 immersive 深色 token）──
 * shell.css 的 html[data-app-shell-layout=immersive] 会在 html 上强制午夜深色 token，
 * 盖过 html.light；短剧浮标打开的可读 chrome（讨论 / 选集 / 换源 / 片单 / 新建片单 / 登录注册）
 * 需局部恢复浅色 token。沉浸播区工具条 (.k-sd__tool) 仍保持深色半透明。
 * 子件 (.k-ov__title / .k-talk__empty* / .k-ep / .k-src / .k-pp__* / .k-login__* / .k-ov__x) 已用 var(--k-*)。
 */
html.light[data-app-shell-layout="immersive"] #k-ov-comment,
html.light[data-app-shell-layout="immersive"] #k-ov-comment .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-episodes,
html.light[data-app-shell-layout="immersive"] #k-ov-episodes .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-source,
html.light[data-app-shell-layout="immersive"] #k-ov-source .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-playlist-picker,
html.light[data-app-shell-layout="immersive"] #k-ov-playlist-picker .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-create-playlist,
html.light[data-app-shell-layout="immersive"] #k-ov-create-playlist .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-login,
html.light[data-app-shell-layout="immersive"] #k-ov-login .k-ov__panel {
    --k-bg: #f4f7f5;
    --k-surface: #ffffff;
    --k-bg-deep: #e9efec;
    --k-bg-elevated: #ffffff;
    --k-surface-1: #ffffff;
    --k-hover-rgb: 229 236 233;
    --k-text: #17211d;
    --k-text-muted: rgba(23, 33, 29, 0.78);
    --k-text-subtle: rgba(23, 33, 29, 0.62);
    --k-border: rgba(var(--k-primary-rgb) / 18%);
    --k-border-soft: rgba(23, 33, 29, 0.1);
    --k-interactive-border: rgba(23, 33, 29, 0.14);
    --k-interactive-border-hover: rgba(23, 33, 29, 0.28);
    --k-panel-tint: rgba(23, 33, 29, 0.03);
    --k-card: #ffffff;
    --k-card-hover: #ffffff;
    --k-card-inner: rgba(23, 33, 29, 0.05);
    --k-tint: rgba(23, 33, 29, 0.045);
    --k-composer-bg: rgba(255, 255, 255, 0.92);
}
html.light[data-app-shell-layout="immersive"] #k-ov-comment .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-episodes .k-ov__panel {
    color: var(--k-text);
    border-color: var(--k-interactive-border);
    box-shadow: -0.5rem 0 2rem rgb(23 33 29 / 12%);
}
html.light[data-app-shell-layout="immersive"] #k-ov-source .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-playlist-picker .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-create-playlist .k-ov__panel,
html.light[data-app-shell-layout="immersive"] #k-ov-login .k-ov__panel {
    color: var(--k-text);
    border-color: var(--k-interactive-border);
    box-shadow: 0 2rem 6rem rgb(23 33 29 / 14%);
}

/* 自定义片单区：白底上强制可读（含非 immersive 的 html.light） */
html.light #k-ov-playlist-picker .k-pp__row-title,
html.light #k-ov-playlist-picker .k-pp__sec-label {
    color: var(--k-text);
}
html.light #k-ov-playlist-picker .k-pp__row-meta,
html.light #k-ov-playlist-picker .k-pp__empty p {
    color: var(--k-text-muted);
}
html.light #k-ov-playlist-picker .k-pp__new,
html.light #k-ov-playlist-picker .k-pp__empty-new {
    color: var(--k-primary-strong, #087a54);
    border-color: color-mix(in srgb, var(--k-primary-strong, #087a54) 58%, transparent);
    background: color-mix(in srgb, var(--k-primary-strong, #087a54) 10%, transparent);
}
html.light #k-ov-playlist-picker .k-pp__new:hover,
html.light #k-ov-playlist-picker .k-pp__empty-new:hover {
    color: var(--k-primary-ice, #07583d);
    border-color: var(--k-primary-strong, #087a54);
    background: color-mix(in srgb, var(--k-primary-strong, #087a54) 16%, transparent);
}
html.light[data-app-shell-layout="immersive"] #k-ov-comment .k-ov__input::placeholder,
html.light[data-app-shell-layout="immersive"] #k-ov-comment .k-talk__input::placeholder,
html.light[data-app-shell-layout="immersive"] #k-ov-playlist-picker .k-pp__search input::placeholder,
html.light[data-app-shell-layout="immersive"] #k-ov-create-playlist input::placeholder,
html.light[data-app-shell-layout="immersive"] #k-ov-login .k-login__input::placeholder {
    color: var(--k-text-subtle);
}

/* 统一分享：二维码、真实片单码与外链；手机端为底部面板。 */
.k-ov--share .k-ov__scrim { background: rgb(4 4 4 / 66%); backdrop-filter: blur(8px); }
.k-share {
    width: min(544px, 100%);
    padding: 23px;
    border-radius: 22px;
    background: radial-gradient(circle at 0% 16%, rgb(255 207 50 / 5%), transparent 32%), var(--k-surface);
    overflow-y: auto;
}
.k-share__close { position: absolute; top: 13px; right: 13px; width: 34px; height: 34px; border-radius: 50%; }
.k-share h2 { margin: 0; padding-right: 43px; color: var(--k-text); font-size: 22px; line-height: 30px; font-weight: 800; }
.k-share__intro { margin: 5px 30px 0 0; color: var(--k-text-subtle); font-size: 14px; line-height: 21px; }
.k-share__content { display: grid; grid-template-columns: 144px minmax(0, 1fr); gap: 14px; margin-top: 16px; }
.k-share__qr { display: grid; place-items: center; width: 144px; height: 144px; padding: 4px; background: #fff; color: #0f172a; border-radius: 14px; }
.k-share__qr svg { width: 100%; height: 100%; }
.k-share__details { display: grid; gap: 8px; min-width: 0; }
.k-share__field { display: grid; grid-template-columns: 28px minmax(0, 1fr) 28px; align-items: center; gap: 8px; min-height: 58px; padding: 9px; background: var(--k-tint, rgb(255 255 255 / 6%)); border: 1px solid var(--k-border-soft); border-radius: 13px; }
.k-share__field > span, .k-share__field > button { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 8px; color: var(--k-text-muted); background: var(--k-card-inner, rgb(255 255 255 / 10%)); }
.k-share__field > div { min-width: 0; }
.k-share__field small { display: block; color: var(--k-text-subtle); font-size: 12px; }
.k-share__field strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--k-text); font-size: 14px; margin-top: 4px; }
.k-share button { cursor: pointer; }
.k-share button:disabled { opacity: .4; cursor: default; }
.k-share__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.k-share__actions button { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; border: 1px solid var(--k-border-soft); border-radius: 11px; background: var(--k-tint, rgb(255 255 255 / 6%)); color: var(--k-text); font-size: 14px; font-weight: 700; }
.k-share__actions .k-share__native { background: #0dd9a3; color: #063a2d; border-color: transparent; }
.k-share__nav { display: grid; gap: 9px; border-top: 1px solid var(--k-border-soft); margin-top: 18px; padding-top: 15px; }
.k-share__nav > * { display: grid; grid-template-columns: 22px minmax(0, 1fr) 12px; align-items: center; gap: 10px; text-align: left; padding: 12px; min-height: 64px; background: var(--k-tint, rgb(255 255 255 / 6%)); border: 1px solid var(--k-border-soft); border-radius: 12px; color: var(--k-primary); text-decoration: none; }
.k-share__nav strong, .k-share__nav small { display: block; }
.k-share__nav strong { color: var(--k-text); font-size: 14px; }
.k-share__nav small { color: var(--k-text-subtle); font-size: 12px; margin-top: 5px; }
.k-share__pick { display: grid; gap: 6px; }
.k-share__pick-label { font-size: 12px; color: var(--k-text-subtle); }
.k-share__pick-ctl { position: relative; }
.k-share__pick-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-height: 42px;
    padding: 8px 10px 8px 12px;
    border: 1px solid var(--k-border-soft);
    border-radius: 11px;
    background: var(--k-tint, rgb(255 255 255 / 6%));
    color: var(--k-text);
    font-size: 14px;
    font-weight: 600;
    text-align: left;
}
.k-share__pick-btn[aria-expanded="true"] {
    border-color: var(--k-primary-strong);
    box-shadow: 0 0 0 1px rgb(var(--k-primary-rgb) / 28%);
}
.k-share__pick-value {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.k-share__pick-chev {
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--k-text-muted);
    border-bottom: 2px solid var(--k-text-muted);
    transform: rotate(45deg) translateY(-2px);
    transition: transform 0.15s ease;
}
.k-share__pick-btn[aria-expanded="true"] .k-share__pick-chev {
    transform: rotate(-135deg) translateY(2px);
}
.k-share__pick-menu {
    position: absolute;
    z-index: 4;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 220px;
    margin: 0;
    padding: 6px;
    list-style: none;
    overflow-y: auto;
    border: 1px solid var(--k-border-soft);
    border-radius: 12px;
    background: var(--k-surface-elevated, var(--k-surface, #1a1f2e));
    box-shadow: 0 12px 32px rgb(0 0 0 / 35%);
}
.k-share__pick-opt {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--k-text);
    font-size: 14px;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}
.k-share__pick-opt:hover,
.k-share__pick-opt:focus-visible {
    background: rgb(var(--k-primary-rgb) / 14%);
    outline: none;
}
.k-share__pick-opt[aria-selected="true"] {
    background: rgb(var(--k-primary-rgb) / 20%);
    color: var(--k-primary-strong);
    font-weight: 700;
}
.k-share__status { margin: 0; font-size: 12px; color: var(--k-text-muted); }
.k-share [hidden] { display: none; }
.k-share :is(button, a):focus-visible { outline: 2px solid var(--k-primary); outline-offset: 2px; }
/* 分享 H5 sheet 已并入文末 ≤760 共用规则 */

/* ── H5 ≤760：PC 居中弹窗 → 底部抽屉 sheet（源站规则）──────────────────
 * 贴底 + 顶圆角 ~24；侧栏(.k-ov--side) / 全屏贴边(.k-ov--smore) 除外。
 * 个别弹层可再叠专用 padding / 通栏按钮，勿各写一套定位。
 * ──────────────────────────────────────────────────────────────────── */
@media (max-width: 760px) {
    .k-ov:not(.k-ov--side):not(.k-ov--smore) {
        padding: max(8px, env(safe-area-inset-top, 0px)) 0 0;
        align-items: flex-end;
        justify-content: center;
    }
    .k-ov:not(.k-ov--side):not(.k-ov--smore) > .k-ov__panel {
        width: 100%;
        max-width: none;
        max-height: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)));
        margin: 0;
        border-radius: 24px 24px 0 0;
        border-left: 0;
        border-right: 0;
        border-bottom: 0;
    }
    /* 圆形关闭（对齐源站 sheet） */
    .k-ov:not(.k-ov--side):not(.k-ov--smore) .k-ov__x {
        width: 2rem;
        height: 2rem;
        border-radius: 50%;
    }
    .k-ov:not(.k-ov--side):not(.k-ov--smore) .k-ov__x--box {
        border-radius: 50%;
        background: transparent;
    }

    /* 新建片单：通栏绿主按钮（对照源站底 sheet） */
    #k-ov-create-playlist .k-ov__foot {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
        padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
        border-top: 0;
    }
    #k-ov-create-playlist .k-ov__foot .k-btn--ghost { display: none; }
    #k-ov-create-playlist .k-ov__foot .k-btn--primary {
        width: 100%;
        min-height: 46px;
        border-radius: 13px;
        font-weight: 700;
    }

    /* 反馈 / 线路 / 地址：主按钮通栏，底留 safe-area */
    #k-ov-feedback .k-ov__foot,
    #k-ov-source .k-ov__foot,
    #k-ov-address .k-ov__foot,
    #k-ov-midnight-notice .k-ov__foot,
    #k-ov-collection .k-ov__foot {
        padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
    }
    #k-ov-feedback .k-ov__foot {
        flex-direction: column;
        align-items: stretch;
        border-top: 0;
    }
    #k-ov-feedback .k-ov__foot .k-btn--ghost { display: none; }
    #k-ov-feedback .k-ov__foot .k-btn--primary {
        width: 100%;
        min-height: 46px;
        border-radius: 13px;
        font-weight: 700;
    }

    /* 登录 / 注册 sheet 收紧左右与底 padding */
    .k-ov__panel--login {
        width: 100%;
        max-width: none;
        padding: 28px 18px calc(28px + env(safe-area-inset-bottom, 0px));
    }

    /* 编辑资料（含绑定子面板） */
    .k-ov__panel--profile {
        width: 100%;
        max-width: none;
        max-height: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)));
        padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    }
    .k-ep__scroll {
        max-height: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)) - 8.5rem);
    }

    /* 加入片单 picker */
    #k-ov-playlist-picker .k-ov__panel--pp {
        width: 100%;
        max-width: none;
        max-height: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)));
        border-radius: 24px 24px 0 0;
    }

    /* 预备 / 地址卡：全宽 */
    .k-ov__panel--addr,
    .k-ov__panel--prep {
        width: 100%;
        max-width: none;
    }

    /* 统一分享弹层到 ≤760（原先仅 ≤639） */
    .k-ov--share {
        padding: 0;
        align-items: flex-end;
    }
    .k-share {
        width: 100%;
        max-height: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)));
        padding: 18px 14px max(18px, env(safe-area-inset-bottom, 0px));
        border-radius: 24px 24px 0 0;
    }
    .k-share h2 { font-size: 20px; }
    .k-share__content {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        margin-top: 14px;
    }
    .k-share__qr {
        width: 112px;
        height: 112px;
        margin: auto;
        border-radius: 12px;
    }
}
/* 设置弹层（侧栏「设置与账号」）—— 对照源站分组列表 + 主题分段 */
.k-ov__panel--settings {
    width: min(26rem, 100%);
    max-height: min(34rem, calc(100dvh - 2rem));
}

.k-set__scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 8px 14px 16px;
    overscroll-behavior: contain;
}

.k-set__foot {
    flex: 0 0 auto;
    padding: 12px 14px calc(14px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--k-border-soft);
}

.k-set__logout {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1px solid rgb(239 68 68 / 35%);
    background: rgb(239 68 68 / 8%);
    color: #ef4444;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.15s, border-color 0.15s;
}

.k-set__logout:hover {
    background: rgb(239 68 68 / 14%);
    border-color: rgb(239 68 68 / 50%);
    color: #f87171;
}

.k-set__sect {
    margin-bottom: 16px;
}

.k-set__sect:last-child {
    margin-bottom: 4px;
}

.k-set__sect-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px 4px;
    font-size: 13px;
    font-weight: 600;
    color: var(--k-text-muted);
}

.k-set__sect-ico {
    display: inline-flex;
    color: var(--k-text-subtle);
    line-height: 0;
}

.k-set__group {
    border-radius: 12px;
    border: 1px solid var(--k-interactive-border);
    background: rgb(var(--k-hover-rgb) / 22%);
    overflow: hidden;
}

.k-set__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 52px;
    padding: 10px 12px;
    margin: 0;
    border: 0;
    border-bottom: 1px solid var(--k-border-soft);
    background: transparent;
    color: inherit;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.15s;
}

.k-set__row:last-child {
    border-bottom: 0;
}

.k-set__row:hover {
    background: rgb(var(--k-primary-rgb) / 6%);
}

.k-set__row--static {
    cursor: default;
}

.k-set__row--static:hover {
    background: transparent;
}

.k-set__row-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    flex: 1;
}

.k-set__row-text strong {
    font-size: 14px;
    font-weight: 600;
    color: var(--k-text);
}

.k-set__row-text em {
    font-size: 12px;
    font-style: normal;
    color: var(--k-text-subtle);
}

.k-set__chev {
    flex: 0 0 auto;
    color: var(--k-text-subtle);
    line-height: 0;
}

.k-set__theme {
    display: inline-flex;
    flex: 0 0 auto;
    padding: 2px;
    border-radius: 999px;
    border: 1px solid var(--k-interactive-border);
    background: var(--k-card);
    gap: 2px;
}

.k-set__theme-btn {
    min-width: 52px;
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--k-text-muted);
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s, background-color 0.15s;
}

.k-set__theme-btn.is-active {
    border-color: rgb(var(--k-primary-rgb) / 50%);
    background: rgb(var(--k-primary-rgb) / 12%);
    color: var(--k-primary);
}

.k-set__theme-btn:hover:not(.is-active) {
    color: var(--k-text);
}

/* issue #1346：设置里的语言切换（多语 chip，可换行） */
.k-set__row--lang {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px 12px;
}
.k-set__lang {
    display: flex;
    flex: 1 1 100%;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-start;
}
.k-set__lang-btn {
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid var(--k-interactive-border, var(--k-border));
    border-radius: 999px;
    background: var(--k-card, transparent);
    color: var(--k-text-muted);
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s, background-color 0.15s;
}
.k-set__lang-btn.is-active {
    border-color: rgb(var(--k-primary-rgb) / 50%);
    background: rgb(var(--k-primary-rgb) / 12%);
    color: var(--k-primary);
}
.k-set__lang-btn:hover:not(.is-active) {
    color: var(--k-text);
}
