/* 颜色 */
:root {
    --kicode-theme-op: #4259ef23;
    --kicode-card-bg-none: rgba(255, 255, 255, 0);
    --kicode-main-op-deep: var(--kicode-theme-op-deep) !important;
    --kicode-gray-op: #9999992b;
    --kicode-theme-top: var(--kicode-theme);
    --kicode-white: #fff;
    --kicode-white-op: rgba(255, 255, 255, 0.2);
    --kicode-black: #000;
    --kicode-black-op: rgba(0, 0, 0, 0.2);
    --kicode-none: rgba(0, 0, 0, 0);
    --kicode-gray: #999999;
    --kicode-yellow: #ffc93e;
    --kicode-orange: #e38100;
    --kicode-border-radius: 8px;
    --kicode-main: var(--kicode-theme);
    --kicode-main-op: var(--kicode-theme-op);
    --kicode-shadow-theme: 0 8px 12px -3px var(--kicode-theme-op);
    --kicode-shadow-main: 0 8px 12px -3px var(--kicode-main-op);
    --kicode-shadow-blue: 0 8px 12px -3px rgba(40, 109, 234, 0.2);
    --kicode-shadow-white: 0 8px 12px -3px rgba(255, 255, 255, 0.2);
    --kicode-shadow-black: 0 0 12px 4px rgba(0, 0, 0, 0.05);
    --kicode-shadow-yellow: 0px 38px 77px -26px rgba(255, 201, 62, 0.12);
    --kicode-shadow-red: 0 8px 12px -3px #ee7d7936;
    --kicode-shadow-green: 0 8px 12px -3px #87ee7936;
    --kicode-shadow-border: 0 8px 16px -4px #2c2d300c;
    --kicode-shadow-blackdeep: 0 2px 16px -3px rgba(0, 0, 0, 0.15);
    --kicode-logo-color: linear-gradient(215deg, #4584ff 30%, #ff7676 70%);
    --style-border: 1px solid var(--kicode-card-border);
    --kicode-blue-main: #3b70fc;
    --style-border-hover: 1px solid var(--kicode-main);
    --style-border-dashed: 1px dashed var(--kicode-theme-op);
    --style-border-avatar: 4px solid var(--kicode-background);
    --style-border-always: 1px solid var(--kicode-card-border);
    --style-border-none: 1px solid transparent;
    --kicode-white-acrylic1: #fefeff !important;
    --kicode-white-acrylic2: #fcfdff !important;
    --kicode-black-acrylic2: #08080a !important;
    --kicode-black-acrylic1: #0b0b0e !important;
    --kicode-main-none: #b8b8b800 !important;
}

[data-theme="light"] {
    --kicode-theme-op-deep: #4259efdd;
    --global-bg: #f7f9fe;
    --kicode-theme: #3b70fc;
    --kicode-theme-deep: #1856fb;
    --kicode-theme-op: #4259ef23;
    --kicode-blue: #3b70fc;
    --kicode-red: #d8213c;
    --kicode-pink: #ff7c7c;
    --kicode-green: #57bd6a;
    --kicode-fontcolor: #363636;
    --kicode-background: #f7f9fe;
    --kicode-reverse: #000;
    --kicode-maskbg: rgba(255, 255, 255, 0.6);
    --kicode-maskbgdeep: rgba(255, 255, 255, 0.85);
    --kicode-hovertext: var(--kicode-theme);
    --kicode-ahoverbg: #f7f7fa;
    --kicode-lighttext: var(--kicode-main);
    --kicode-secondtext: rgba(60, 60, 67, 0.6);
    --kicode-scrollbar: rgba(60, 60, 67, 0.4);
    --kicode-card-btn-bg: #edf0f7;
    --kicode-post-blockquote-bg: #fafcff;
    --kicode-post-tabs-bg: #f2f5f8;
    --kicode-secondbg: #f1f3f8;
    --kicode-shadow-nav: 0 5px 12px -5px rgba(102, 68, 68, 0.05);
    --kicode-card-bg: #fff;
    --kicode-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0);
    --kicode-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0);
    --kicode-card-border: #e3e8f7;
}

[data-theme="dark"] {
    --kicode-theme-op-deep: #0084ffdd;
    --global-bg: #18171d;
    --kicode-theme: #0084ff;
    --kicode-theme-deep: #0076e5;
    --kicode-theme-op: #0084ff23;
    --kicode-blue: #0084ff;
    --kicode-red: #ff3842;
    --kicode-pink: #ff7c7c;
    --kicode-green: #57bd6a;
    --kicode-fontcolor: #f7f7fa;
    --kicode-background: #18171d;
    --kicode-reverse: #fff;
    --kicode-maskbg: rgba(0, 0, 0, 0.6);
    --kicode-maskbgdeep: rgba(0, 0, 0, 0.85);
    --kicode-hovertext: #0a84ff;
    --kicode-ahoverbg: #fff;
    --kicode-lighttext: #f2b94b;
    --kicode-secondtext: #a1a2b8;
    --kicode-scrollbar: rgba(200, 200, 223, 0.4);
    --kicode-card-btn-bg: #30343f;
    --kicode-post-blockquote-bg: #000;
    --kicode-post-tabs-bg: #121212;
    --kicode-secondbg: #30343f;
    --kicode-shadow-nav: 0 5px 20px 0px rgba(28, 28, 28, 0.4);
    --kicode-card-bg: #1d1b26;
    --kicode-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0);
    --kicode-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0);
    --kicode-card-border: #42444a;
}



.aplayer.aplayer-narrow .aplayer-body,
.aplayer.aplayer-narrow .aplayer-pic {
    height: 66px;
    width: 66px;
}

#page:has(.aplayer):has(.aplayer-body):has(.aplayer-list) #post-comment .tk-comments-container>.tk-comment {
    border: none;
    box-shadow: none;
}

/* 导航栏音乐 */
@media screen and (max-width: 1300px) {
    #nav-music {
        display: none !important;
    }
}

#nav-music {
    display: flex;
    align-items: center;
    z-index: 9;
    position: fixed;
    bottom: 20px;
    left: 20px;
    cursor: pointer;
    transition: 0.5s;
    transform-origin: left bottom;
    box-shadow: var(--kicode-shadow-border);
    border-radius: 40px;
    overflow: hidden;
    /* 每首歌的主题色（JS 动态注入），默认跟随站点主色 */
    --nav-music-theme: var(--kicode-main);
    --nav-music-theme-op-deep: var(--kicode-main-op-deep);
}

#nav-music:active {
    transform: scale(0.97);
}

/* #nav-music.playing {
    box-shadow: 0 0px 12px -3px var(--kicode-none);
    animation: playingShadow 5s linear infinite;
} */

@keyframes playingShadow {
    0% {
        box-shadow: 0 0px 12px -3px var(--kicode-none);
    }

    50% {
        box-shadow: 0 0px 12px 0px var(--kicode-main);
    }

    100% {
        box-shadow: 0 0px 12px -3px var(--kicode-none);
    }
}

#nav-music .aplayer.aplayer-withlrc .aplayer-pic {
    height: 25px;
    width: 25px;
    border-radius: 40px;
    z-index: 1;
    transition: 0.3s;
    transform: rotate(0deg) scale(1);
    border: var(--style-border-always);
    animation: changeright 24s linear infinite;
    animation-play-state: paused;
}

#nav-music.playing .aplayer.aplayer-withlrc .aplayer-pic {
    /* box-shadow: 0 0 14px #ffffffa6; */
    transform: rotate(0deg) scale(1.1);
    border-color: var(--kicode-white);
    animation-play-state: running;
}

@keyframes changeright {
    0% {
        transform: rotate(0deg) scale(1.1);
        /* box-shadow: 0 0 2px #ffffff00; */
    }

    25% {
        transform: rotate(90deg) scale(1.1);
        /* box-shadow: 0 0 14px #ffffff; */
    }

    50% {
        transform: rotate(180deg) scale(1.1);
        /* box-shadow: 0 0 2px #ffffff00; */
    }

    75% {
        transform: rotate(270deg) scale(1.1);
        /* box-shadow: 0 0 14px #ffffff; */
    }

    100% {
        transform: rotate(360deg) scale(1.1);
        /* box-shadow: 0 0 2px #ffffff00; */
    }
}

#nav-music .aplayer.aplayer-withlrc .aplayer-info {
    height: 100%;
    color: var(--kicode-fontcolor);
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
}

#nav-music.playing .aplayer.aplayer-withlrc .aplayer-info {
    color: var(--kicode-white);
}

#nav-music.playing #nav-music-hoverTips {
    width: 0;
    opacity: 0;
}

#nav-music #nav-music-hoverTips {
    color: var(--kicode-white);
    background: var(--nav-music-theme, var(--kicode-main));
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    align-items: center;
    justify-content: center;
    display: flex;
    border-radius: 40px;
    opacity: 0;
    font-size: 14px;
    pointer-events: auto !important;
    z-index: 20 !important;
    transition: 0.3s;
}

#nav-music:hover:not(.playing) #nav-music-hoverTips {
    opacity: 1;
}

#nav-music #nav-music-hoverTips .nav-music-play-icon {
    width: 22px;
    height: 22px;
    display: block;
}

#nav-music .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap:hover .aplayer-bar .aplayer-played .aplayer-thumb {
    display: none;
}

#nav-music .aplayer {
    position: relative;
    z-index: 0;
    background: var(--kicode-card-bg);
    border-radius: 60px;
    height: 41px;
    display: flex;
    margin: 0;
    transition: 0.3s;
    border: var(--style-border);
    box-shadow: none;
}

#nav-music.playing .aplayer {
    background: var(--nav-music-theme-op-deep, var(--kicode-main-op-deep));
    border: 1px solid var(--nav-music-theme, var(--kicode-main));
    backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: blur(20px);
}

#nav-music .aplayer .aplayer-notice {
    display: none;
}

#nav-music .aplayer .aplayer-miniswitcher {
    display: none;
}

#nav-music .aplayer .aplayer-body {
    position: relative;
    display: flex;
    align-items: center;
}

#nav-music .aplayer-list {
    display: none;
}

#nav-music .aplayer .aplayer-info .aplayer-music {
    margin: 0;
    display: flex;
    align-items: center;
    padding: 0 12px 0 8px;
    cursor: pointer;
    z-index: 1;
    height: 100%;
}

#nav-music .aplayer .aplayer-info .aplayer-controller .aplayer-time {
    display: none;
}

#nav-music .aplayer .aplayer-info .aplayer-music .aplayer-author {
    display: none;
}

#nav-music .aplayer.aplayer-withlist .aplayer-info {
    border: none;
}

#nav-music .aplayer .aplayer-pic .aplayer-button {
    bottom: 50%;
    right: 50%;
    transform: translate(50%, 50%);
    margin: 0;
    transition: 0.3s;
}

#nav-music .aplayer .aplayer-pic:has(.aplayer-button.aplayer-play) {
    animation-play-state: paused;
    transform: rotate(0deg) scale(1) !important;
}

#nav-music .aplayer.aplayer-withlrc .aplayer-pic {
    margin-left: 8px;
}

#nav-music .aplayer .aplayer-info .aplayer-music .aplayer-title {
    cursor: pointer;
    line-height: 1;
    display: inline-block;
    white-space: nowrap;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: 0.3s;
    user-select: none;
}

#nav-music .aplayer .aplayer-info .aplayer-controller {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
}

/* 隐藏 APlayer 自带进度条 */
#nav-music .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap {
    display: none;
}

/* 顶部迷你控制按钮样式 */
#nav-music .nav-music-controls {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.25s ease;
    height: 100%;
    padding-right: 10px;
    background: linear-gradient(to left, var(--nav-music-theme, var(--kicode-main)) 60%, transparent);
    width: 180px;
    z-index: 2;
}


#nav-music.stretch .nav-music-controls {
    pointer-events: none;
    opacity: 0;
}

#nav-music.stretch:hover .nav-music-controls {
    opacity: 1;
    pointer-events: auto;
}

/* 移动端：stretch 状态下控制按钮始终可见可点击 */
@media (hover: none) and (pointer: coarse) {
    #nav-music.stretch .nav-music-controls {
        opacity: 1;
        pointer-events: auto;
    }
    
    /* 点击空白后隐藏控制按钮 */
    #nav-music.stretch .nav-music-controls.mobile-hidden {
        opacity: 0;
        pointer-events: none;
    }
    
    /* 移动端禁用按钮 hover 效果 */
    #nav-music .nav-music-btn:hover {
        background: transparent;
    }
    
    #nav-music.playing .nav-music-btn:hover {
        background: transparent;
    }
    
    /* 移动端用 active 代替 hover */
    #nav-music .nav-music-btn:active {
        background: rgba(255, 255, 255, 0.18);
    }
}

#nav-music .nav-music-btn {
    width: 26px;
    height: 26px;
    border-radius: 26px;
    border: none;
    background: transparent;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s ease, transform 0.1s ease, opacity 0.2s ease;
    pointer-events: none;
}

#nav-music.stretch:hover .nav-music-btn {
    pointer-events: auto;
}

/* 移动端：按钮始终可点击 */
@media (hover: none) and (pointer: coarse) {
    #nav-music.stretch .nav-music-btn {
        pointer-events: auto;
    }
}

#nav-music.playing .nav-music-btn {
    background: transparent;
}

#nav-music .nav-music-btn:hover {
    /* transform: translateY(-1px); */
    background: rgba(255, 255, 255, 0.12);
}

#nav-music.playing .nav-music-btn:hover {
    background: rgba(255, 255, 255, 0.18);
}

#nav-music .nav-music-icon {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}

/* 根据播放状态切换播放/暂停图标显示 */
#nav-music .nav-music-icon-pause {
    display: none;
}

#nav-music.playing .nav-music-icon-play {
    display: none;
}

#nav-music.playing .nav-music-icon-pause {
    display: block;
}

/* 歌词 */
#nav-music .aplayer.aplayer-withlrc .aplayer-lrc {
    width: 0;
    opacity: 0;
    transition: 0.3s;
    margin-top: -2px;
    padding: 5px 0;
}

#nav-music.stretch .aplayer.aplayer-withlrc .aplayer-lrc {
    margin-left: 8px;
}

#nav-music.stretch .aplayer.aplayer-withlrc .aplayer-lrc {
    width: 200px;
    margin-bottom: 0;
    opacity: 1;
}

#nav-music .aplayer .aplayer-lrc p.aplayer-lrc-current {
    color: var(--kicode-white);
    border: none;
}

#nav-music .aplayer .aplayer-lrc:after,
#nav-music .aplayer .aplayer-lrc:before {
    display: none;
}

#nav-music .aplayer .aplayer-lrc p {
    color: #ffffffb3;
}

#nav-music .aplayer .aplayer-pic {
    /* 允许点击封面来收起/展开音乐条 */
    pointer-events: none;
    cursor: pointer;
}

#nav-music .aplayer .aplayer-pic .aplayer-button {
    display: none;
}

#nav-music .aplayer .aplayer-lrc p {
    color: #ffffff9b;
    filter: blur(.8px);
}

#nav-music .aplayer .aplayer-lrc p.aplayer-lrc-current {
    color: #ffffff;
    border: none;
    filter: blur(0);
}







/* 导航音乐外置胶囊进度条 */
#nav-music-progress {
    position: absolute;
    left: 43px;
    right: 20px;
    bottom: 3px;
    height: 2px;
    background: rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    overflow: hidden;
    pointer-events: none;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .25s ease, transform .25s ease;
}

/* 展开播放器时显示进度条 */
#nav-music.stretch #nav-music-progress {
    opacity: 1;
    transform: translateY(0);
}

#nav-music-progress div {
    height: 100%;
    border-radius: inherit;
    transform: translateZ(0);
    /* GPU 加速 */
    position: absolute;
}

/* 已缓冲 */
#nav-music-progress .nav-music-progress-loaded {
    background: rgba(255, 255, 255, .35);
    width: 0%;
    transition: width .15s linear;
}

/* 已播放 */
#nav-music-progress .nav-music-progress-played {
    background: var(--nav-music-theme) !important;
    width: 0%;
    transition: width .15s linear;
}

/* 保持所有设备显示 */
#nav-music {
    display: flex !important;
}

@media screen and (max-width: 400px) {
    #nav-music {
        left: 10px;
    }

    #nav-music .aplayer .aplayer-info .aplayer-music .aplayer-title {
        max-width: 70px !important;
    }
}