/*
Theme Name: NekoAI
Theme URI: http://10.0.0.207/
Author: Neko
Description: 一个基础的 WordPress 测试主题，首页显示"这是一个测试项目"。暗色风格，灵感源自 MOKE AIGC。
Version: 1.6.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wordpresNekoAI
Tags: blog, one-column, custom-menu
*/

:root {
    --bg: #000000;
    --bg-card: #121212;
    --bg-elevated: #171717;
    --bg-prompt: #141414;
    --border: #242424;
    --border-strong: #2f2f2f;
    --text-primary: #e8e2d6;
    --text-secondary: #9b9588;
    --text-muted: #5c584f;
    --accent: #c92525;
    --accent-soft: rgba(201, 37, 37, 0.12);
    --btn-bg: #d6cfbe;
    --btn-bg-hover: #e4ddca;
    --btn-text: #0a0a0a;
    --tag-bg: #1a1a1a;
    --tag-text: #b5afa2;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    background-color: var(--bg);
    color: var(--text-primary);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 暗色滚动条 */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
::-webkit-scrollbar-track {
    background: var(--bg);
}
::-webkit-scrollbar-thumb {
    background: var(--border-strong);
    border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
    background: #3a3a3a;
}

a {
    color: var(--text-primary);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}
a:hover {
    color: var(--btn-bg);
    border-bottom-color: var(--btn-bg);
}

/* ===== 顶部导航栏（苹果风格暗色扁平） ===== */
.site-nav {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(10, 10, 10, 0.82);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    backdrop-filter: blur(20px) saturate(180%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    font-family: "MiSans", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;
}

.site-nav-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.site-nav-logo {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #f5f5f7;
    border: none;
}
.site-nav-logo:hover {
    color: #f5f5f7;
    opacity: 0.8;
    border: none;
}

.site-nav-menu {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.site-nav-menu li {
    margin: 0;
    padding: 0;
}
.site-nav-menu a {
    display: inline-block;
    padding: 6px 12px;
    font-size: 13px;
    line-height: 1.4;
    color: #a1a1a6;
    border: none;
    transition: color 0.2s ease;
}
.site-nav-menu a:hover {
    color: #f5f5f7;
    border: none;
}
.site-nav-menu .current-menu-item > a,
.site-nav-menu .current_page_item > a {
    color: #f5f5f7;
}

@media (max-width: 768px) {
    .site-nav-inner {
        padding: 0 16px;
        height: 44px;
    }
    .site-nav-menu a {
        padding: 6px 8px;
        font-size: 12px;
    }
}

.site-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 120px 20px;
    text-align: center;
    font-size: 28px;
    color: var(--text-primary);
    font-weight: 300;
    letter-spacing: 0.02em;
}

/* ===== 面包屑导航（图片提示词样式顶部显示） ===== */
.post-breadcrumb {
    margin: 0 0 18px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--text-muted);
}
.post-breadcrumb a {
    color: var(--text-muted);
    text-decoration: none;
    transition: color 0.2s ease;
}
.post-breadcrumb a:hover {
    color: var(--text-primary);
}
.post-breadcrumb-sep {
    margin: 0 8px;
    color: var(--text-muted);
    opacity: 0.5;
}
.post-breadcrumb-current {
    color: var(--text-primary);
}

/* ===== 文章标签胶囊（图片提示词样式顶部显示） ===== */
.post-tags {
    margin: 0 0 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.post-tags a,
.post-tags span {
    display: inline-block;
    padding: 4px 12px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--tag-text);
    background: var(--tag-bg);
    border: 1px solid var(--border);
    border-radius: 4px;
    transition: all 0.2s ease;
}
.post-tags a:hover {
    color: var(--text-primary);
    border-color: var(--text-muted);
    background: var(--bg-elevated);
    border-bottom-color: var(--text-muted);
}

/* ===== 文章布局：左图 60% / 右文 40% ===== */
.post-layout {
    display: flex;
    max-width: 1280px;
    margin: 0 auto;
    padding: 48px 28px;
    gap: 28px;
    align-items: stretch;
}

.post-media {
    flex: 0 0 60%;
    min-width: 0;
}

.post-text {
    flex: 0 0 40%;
    min-width: 0;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 32px 28px;
    box-sizing: border-box;
    max-height: 600px;
    overflow-y: auto;
}

.post-content {
    font-size: 15px;
    line-height: 1.85;
    color: var(--text-secondary);
    word-break: break-word;
}
.post-content p {
    margin: 0 0 14px;
}
.post-content a {
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-strong);
}
.post-content a:hover {
    color: var(--btn-bg);
    border-bottom-color: var(--btn-bg);
}

/* ===== 图片轮播 ===== */
.post-carousel {
    position: relative;
    height: 600px;
    border-radius: 4px;
    overflow: hidden;
    background: #000;
    border: 1px solid var(--border);
}

/* ===== 轮播顶部"此内容由AI生成"提示（抽屉效果） ===== */
.post-ai-notice {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -100%);
    z-index: 3;
    background: rgba(10, 10, 10, 0.82);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(232, 226, 214, 0.22);
    border-top: none;
    border-radius: 0 0 10px 10px;
    padding: 7px 24px;
    font-size: 13px;
    line-height: 1.5;
    color: #f5c542;
    letter-spacing: 0.06em;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}
.post-ai-notice::before {
    content: "ⓘ ";
    font-size: 14px;
}
.post-carousel:hover .post-ai-notice {
    transform: translate(-50%, 0);
    opacity: 1;
}

.post-carousel-track {
    display: flex;
    height: 100%;
    transition: transform 0.5s ease;
}

.post-carousel-slide {
    flex: 0 0 100%;
    height: 100%;
}

.post-carousel-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    cursor: zoom-in;
    background: var(--bg-card);
}

.post-carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: 1px solid rgba(232, 226, 214, 0.2);
    border-radius: 50%;
    background: rgba(10, 10, 10, 0.55);
    color: var(--text-primary);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    transition: all 0.2s ease;
    backdrop-filter: blur(4px);
}

.post-carousel-btn:hover {
    background: var(--btn-bg);
    color: var(--btn-text);
    border-color: var(--btn-bg);
}

.post-carousel-prev {
    left: 14px;
}

.post-carousel-next {
    right: 14px;
}

.post-carousel-dots {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 2;
}

.post-carousel-dot {
    width: 8px;
    height: 8px;
    border: none;
    border-radius: 50%;
    background: rgba(232, 226, 214, 0.3);
    cursor: pointer;
    padding: 0;
    transition: all 0.2s ease;
}

.post-carousel-dot.is-active {
    background: var(--btn-bg);
    transform: scale(1.15);
}

.post-media-empty {
    height: 600px;
    border-radius: 4px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    font-size: 14px;
}

/* ===== 响应式：窄屏上下堆叠 ===== */
@media (max-width: 768px) {
    .post-layout {
        flex-direction: column;
        padding: 20px;
        gap: 20px;
    }

    .post-media,
    .post-text {
        flex: 0 0 auto;
        width: 100%;
        max-height: none;
    }

    .post-carousel,
    .post-media-empty {
        height: 320px;
    }

    .post-text {
        padding: 24px 20px;
    }

    .single-skill-layout {
        flex-direction: column;
        gap: 24px;
    }

    .skill-main,
    .skill-aside {
        flex: 0 0 auto;
        width: 100%;
    }

    .single-llm-layout {
        flex-direction: column;
        gap: 24px;
    }

    .llm-main,
    .llm-aside {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* ===== 默认文章样式 ===== */
.single-default {
    max-width: 780px;
    margin: 0 auto;
    padding: 60px 28px;
}

.single-default-title {
    font-size: 34px;
    line-height: 1.3;
    font-weight: 600;
    margin: 0 0 12px;
    color: var(--text-primary);
    letter-spacing: 0.01em;
}

.single-default-meta {
    color: var(--text-muted);
    font-size: 13px;
    margin-bottom: 32px;
    letter-spacing: 0.04em;
}

.single-default-meta span + span::before {
    content: " · ";
    color: var(--text-muted);
}

.single-default-content {
    font-size: 16px;
    line-height: 1.85;
    color: var(--text-secondary);
    word-break: break-word;
}
.single-default-content p {
    margin: 0 0 18px;
}
.single-default-content a {
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-strong);
}
.single-default-content a:hover {
    color: var(--btn-bg);
    border-bottom-color: var(--btn-bg);
}
.single-default-content h1,
.single-default-content h2,
.single-default-content h3,
.single-default-content h4 {
    color: var(--text-primary);
    margin: 1.6em 0 0.6em;
    font-weight: 600;
}
.single-default-content blockquote {
    margin: 1.5em 0;
    padding: 12px 18px;
    border-left: 3px solid var(--accent);
    background: var(--bg-prompt);
    color: var(--text-secondary);
    border-radius: 0 4px 4px 0;
}
.single-default-content img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    border: 1px solid var(--border);
}

/* ===== 图片点击放大灯箱 ===== */
.post-lightbox[hidden] {
    display: none;
}

.post-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    cursor: zoom-out;
}

.post-lightbox img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.8);
}

.post-lightbox-close {
    position: absolute;
    top: 20px;
    right: 28px;
    font-size: 40px;
    line-height: 1;
    color: var(--text-primary);
    background: none;
    border: 1px solid rgba(232, 226, 214, 0.2);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    cursor: pointer;
    z-index: 1;
    transition: all 0.2s ease;
}
.post-lightbox-close:hover {
    background: var(--btn-bg);
    color: var(--btn-text);
    border-color: var(--btn-bg);
}

/* ===== [prompt] 提示词卡片（图片提示词样式右侧同步展示） ===== */
.post-prompts {
    margin-bottom: 20px;
}

.post-prompt-item {
    display: none;
    margin-bottom: 20px;
    padding: 18px 20px;
    background: var(--bg-prompt);
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent);
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.8;
    color: rgb(155, 149, 136);
    word-break: break-word;
}

.post-prompt-item.is-active {
    display: block;
    animation: postPromptIn 0.35s ease;
}

@keyframes postPromptIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== [prompt] 短代码内联样式（默认文章样式中显示） ===== */
.post-prompt {
    position: relative;
    display: inline-block;
    padding: 2px 8px;
    margin: 0 2px;
    border-bottom: 1px dashed var(--text-muted);
    border-radius: 3px;
    cursor: copy;
    color: #e1e0cc;
    background: transparent;
    transition: all 0.2s ease;
}

.post-prompt:hover {
    background: var(--accent);
    color: #fff;
    border-bottom-color: var(--accent);
}

.post-prompt-tooltip {
    visibility: hidden;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--btn-bg);
    color: var(--btn-text);
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: 5;
    pointer-events: none;
}
.post-prompt-tooltip::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--btn-bg);
}

.post-prompt-tooltip.is-visible {
    visibility: visible;
    opacity: 1;
}

/* ===== 技能文章样式（左 60% / 右 40%） ===== */
.single-skill {
    max-width: 1280px;
    margin: 0 auto;
    padding: 48px 28px;
}

.single-skill-layout {
    display: flex;
    align-items: flex-start;
    gap: 28px;
}

.skill-main {
    flex: 0 0 60%;
    min-width: 0;
}

.skill-aside {
    flex: 0 0 40%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.skill-aside-info,
.skill-aside-doc {
    width: 100%;
}

.single-skill-title {
    font-size: 34px;
    line-height: 1.3;
    font-weight: 600;
    margin: 0 0 18px;
    color: var(--text-primary);
    letter-spacing: 0.01em;
}

.single-skill-tags {
    margin: 0 0 32px;
}

.single-skill-content {
    font-size: 16px;
    line-height: 1.85;
    color: var(--text-secondary);
    word-break: break-word;
}
.single-skill-content p {
    margin: 0 0 18px;
}
.single-skill-content a {
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-strong);
}
.single-skill-content a:hover {
    color: var(--btn-bg);
    border-bottom-color: var(--btn-bg);
}
.single-skill-content h1,
.single-skill-content h2,
.single-skill-content h3,
.single-skill-content h4 {
    color: var(--text-primary);
    margin: 1.6em 0 0.6em;
    font-weight: 600;
}
.single-skill-content blockquote {
    margin: 1.5em 0;
    padding: 12px 18px;
    border-left: 3px solid var(--accent);
    background: var(--bg-prompt);
    color: var(--text-secondary);
    border-radius: 0 4px 4px 0;
}
.single-skill-content img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    border: 1px solid var(--border);
}

/* ===== LLM下载文章样式（左 60% 标题+标签+内容 / 右 40% 路径+下载） ===== */
.single-llm {
    max-width: 1280px;
    margin: 0 auto;
    padding: 48px 28px;
}

.single-llm-layout {
    display: flex;
    align-items: flex-start;
    gap: 28px;
}

.llm-main {
    flex: 0 0 60%;
    min-width: 0;
}

.llm-aside {
    flex: 0 0 40%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.llm-aside-path,
.llm-aside-down {
    width: 100%;
}

.single-llm-title {
    font-size: 34px;
    line-height: 1.3;
    font-weight: 600;
    margin: 0 0 18px;
    color: var(--text-primary);
    letter-spacing: 0.01em;
}

.single-llm-tags {
    margin: 0 0 32px;
}

.single-llm-content {
    font-size: 16px;
    line-height: 1.85;
    color: var(--text-secondary);
    word-break: break-word;
}
.single-llm-content p {
    margin: 0 0 18px;
}
.single-llm-content a {
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-strong);
}
.single-llm-content a:hover {
    color: var(--btn-bg);
    border-bottom-color: var(--btn-bg);
}
.single-llm-content h1,
.single-llm-content h2,
.single-llm-content h3,
.single-llm-content h4 {
    color: var(--text-primary);
    margin: 1.6em 0 0.6em;
    font-weight: 600;
}
.single-llm-content blockquote {
    margin: 1.5em 0;
    padding: 12px 18px;
    border-left: 3px solid var(--accent);
    background: var(--bg-prompt);
    color: var(--text-secondary);
    border-radius: 0 4px 4px 0;
}
.single-llm-content img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    border: 1px solid var(--border);
}

/* ===== [skill_info] 技能基础信息卡片 ===== */
.skill-info {
    margin: 8px 0 24px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-card);
    overflow: hidden;
}

.skill-info-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
}

.skill-info-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    padding: 6px 12px;
    border-radius: 999px;
}

.skill-info-badge::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}

/* 安全 */
.skill-info--safe .skill-info-head {
    background: rgba(74, 160, 87, 0.10);
}
.skill-info--safe .skill-info-badge {
    color: #4aa057;
    background: rgba(74, 160, 87, 0.14);
}

/* 风险 */
.skill-info--risk .skill-info-head {
    background: rgba(214, 75, 56, 0.10);
}
.skill-info--risk .skill-info-badge {
    color: #d64b38;
    background: rgba(214, 75, 56, 0.14);
}

/* 未测试 */
.skill-info--untested .skill-info-head {
    background: rgba(155, 149, 136, 0.08);
}
.skill-info--untested .skill-info-badge {
    color: var(--text-secondary);
    background: rgba(155, 149, 136, 0.14);
}

.skill-info-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    line-height: 1.7;
}
.skill-info-table th,
.skill-info-table td {
    text-align: left;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}
.skill-info-table tr:last-child th,
.skill-info-table tr:last-child td {
    border-bottom: none;
}
.skill-info-table th {
    width: 34%;
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
}
.skill-info-table td {
    color: var(--text-secondary);
    word-break: break-word;
}

.skill-info-report {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--text-primary);
    border: none;
    transition: color 0.2s ease;
}
a.skill-info-report {
    cursor: pointer;
}
a.skill-info-report:hover {
    color: var(--btn-bg);
    border: none;
}

.skill-info-divider {
    height: 1px;
    background: var(--border);
}

.skill-info-perms {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px;
}

.skill-info-perm {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--tag-text);
    background: var(--tag-bg);
    border: 1px solid var(--border);
    border-radius: 999px;
}

/* ===== [skill_doc] 下载与安装卡片 ===== */
.skill-doc {
    margin: 8px 0 24px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-card);
    overflow: hidden;
}

.skill-doc-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 16px;
    height: 52px;
    cursor: pointer;
    border-bottom: 1px solid var(--border);
    transition: background 0.2s ease;
}
.skill-doc-row:last-child {
    border-bottom: none;
}
.skill-doc-row:hover {
    background: var(--bg-elevated);
}

.skill-doc-download,
.skill-doc-install {
    position: relative;
}

.skill-doc-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
    flex: 0 0 auto;
}

.skill-doc-label {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
}

.skill-doc-action,
.skill-doc-copy {
    margin-left: auto;
    font-size: 12px;
    color: var(--text-muted);
    border-bottom: 1px dashed var(--text-muted);
}
.skill-doc-row:hover .skill-doc-action,
.skill-doc-row:hover .skill-doc-copy {
    color: var(--btn-bg);
    border-bottom-color: var(--btn-bg);
}

/*** AI辅助安装点击复制的提示气泡 ***/
.skill-doc-tooltip {
    visibility: hidden;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(0, -50%);
    background: var(--btn-bg);
    color: var(--btn-text);
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: 6;
    pointer-events: none;
}
.skill-doc-tooltip.is-visible {
    visibility: visible;
    opacity: 1;
}

/*** 下载安装引导弹窗 ***/
.skill-doc-modal[hidden] {
    display: none;
}
.skill-doc-modal {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.skill-doc-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.78);
}
.skill-doc-modal-box {
    position: relative;
    width: 100%;
    max-width: 560px;
    max-height: 86vh;
    overflow-y: auto;
    background: var(--bg-card);
    border: 1px solid var(--border-strong);
    border-radius: 10px;
    padding: 28px 24px 22px;
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.6);
}

.skill-doc-modal-close {
    position: absolute;
    top: 14px;
    right: 16px;
    font-size: 26px;
    line-height: 1;
    color: var(--text-secondary);
    background: none;
    border: none;
    cursor: pointer;
}
.skill-doc-modal-close:hover {
    color: var(--text-primary);
}

.skill-doc-modal-title {
    margin: 0 0 18px;
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
}

.skill-doc-modal-anim {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 4px 0;
}

.skill-doc-step {
    margin: 0;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-muted);
    border-left: 3px solid var(--border);
    border-radius: 0 4px 4px 0;
    background: var(--bg-prompt);
    opacity: 0;
    transform: translateX(6px);
    transition: opacity 0.45s ease, transform 0.45s ease, color 0.45s ease, border-color 0.45s ease;
}
.skill-doc-step.is-ready {
    opacity: 1;
    transform: translateX(0);
    color: var(--text-secondary);
    border-left-color: var(--text-muted);
}
.skill-doc-step.is-current {
    color: var(--text-primary);
    border-left-color: var(--accent);
    background: var(--bg-elevated);
}

.skill-doc-risk {
    margin: 18px 0 0;
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
    color: #e0a800;
    background: rgba(224, 168, 0, 0.08);
    border: 1px solid rgba(224, 168, 0, 0.35);
    border-radius: 6px;
}

.skill-doc-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 20px;
}

.skill-doc-btn {
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 500;
    border-radius: 6px;
    border: 1px solid var(--border-strong);
    cursor: pointer;
    color: var(--text-primary);
    background: var(--bg-elevated);
    transition: all 0.2s ease;
}
.skill-doc-btn:hover {
    border-color: var(--text-muted);
}
.skill-doc-btn-cancel:hover {
    background: var(--bg-elevated);
}
.skill-doc-btn-confirm {
    color: var(--btn-text);
    background: var(--btn-bg);
    border-color: var(--btn-bg);
    font-weight: 600;
}
.skill-doc-btn-confirm:hover {
    background: var(--btn-bg-hover);
    border-color: var(--btn-bg-hover);
}

/* ===== [LLM_Down] LLM 下载地址卡片 ===== */
.llm-down {
    margin: 8px 0 24px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-card);
    overflow: hidden;
}

.llm-down-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
    transition: background 0.2s ease;
}
.llm-down-row:last-child {
    border-bottom: none;
}
.llm-down-row:hover {
    background: var(--bg-elevated);
}

.llm-down-index {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
}

.llm-down-link {
    font-size: 14px;
    color: var(--text-primary);
    word-break: break-all;
    border-bottom: 1px solid var(--border-strong);
}
.llm-down-link:hover {
    color: var(--btn-bg);
    border-bottom-color: var(--btn-bg);
}

.llm-down-tag {
    flex: 0 0 auto;
    margin-left: auto;
    font-size: 12px;
    line-height: 1.6;
    color: var(--accent);
    background: var(--bg-prompt);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 2px 12px;
    white-space: nowrap;
}

/* ===== [LLM_Path] LLM 储存路径终端卡片 ===== */
.llm-path {
    margin: 8px 0 24px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #0d0d12;
    overflow: hidden;
}

.llm-path-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: #16161d;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.llm-path-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex: 0 0 auto;
}
.llm-path-dot.is-red {
    background: #ff5f56;
}
.llm-path-dot.is-yellow {
    background: #ffbd2e;
}
.llm-path-dot.is-green {
    background: #27c93f;
}

.llm-path-title {
    margin-left: 8px;
    font-size: 12px;
    letter-spacing: 0.03em;
    color: var(--text-muted);
}

.llm-path-tree {
    margin: 0;
    padding: 16px;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 13px;
    line-height: 1.7;
    color: #d6dae6;
    white-space: pre;
    overflow-x: auto;
    word-break: normal;
}

/* ===== 首页全屏欢迎页 ===== */
body.home-landing {
    overflow: hidden;
}

.home-hero {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    background: #000;
}

/* 背景视频层 */
.home-bg-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
    z-index: 1;
}

/* 灰度遮罩层 */
.home-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.3) 0%,
        rgba(0, 0, 0, 0.5) 50%,
        rgba(0, 0, 0, 0.7) 100%
    );
    backdrop-filter: grayscale(30%);
    -webkit-backdrop-filter: grayscale(30%);
    z-index: 2;
}

/* 前景内容层 */
.home-content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    padding: 0 8vw 10vh;
    max-width: 100%;
}

/* Logo 区域 */
.home-logo {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 40px;
}

.home-logo-mark {
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-logo-text {
    font-family: "MiSans", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
    font-size: 32px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: #e8e2d6;
    white-space: nowrap;
}

.home-logo-divider {
    margin: 0 6px;
    color: rgba(232, 226, 214, 0.35);
    font-weight: 300;
}

.home-logo-sub {
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 0.12em;
    color: rgba(232, 226, 214, 0.7);
}

/* 社交图标区域 */
.home-social {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 48px;
}

.home-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(232, 226, 214, 0.25);
    border-radius: 50%;
    color: rgba(232, 226, 214, 0.7);
    transition: all 0.2s ease;
    border-bottom: none;
}

.home-social-link:hover {
    color: #e8e2d6;
    border-color: rgba(232, 226, 214, 0.5);
    background: rgba(232, 226, 214, 0.08);
    border-bottom: 1px solid rgba(232, 226, 214, 0.5);
}

.home-social-links {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: 8px;
    font-size: 12px;
    color: rgba(232, 226, 214, 0.5);
}

.home-social-links a {
    color: rgba(232, 226, 214, 0.5);
    border-bottom: none;
    font-size: 12px;
}

.home-social-links a:hover {
    color: #e8e2d6;
}

.home-social-dot {
    color: rgba(232, 226, 214, 0.3);
}

/* 主标语 */
.home-slogan {
    max-width: 780px;
    margin-bottom: 120px;
}

.home-slogan p {
    margin: 0;
    font-size: 28px;
    line-height: 1.6;
    font-weight: 400;
    color: #e8e2d6;
    letter-spacing: 0.02em;
}

/* 向上滑动提示 */
.home-scroll-hint {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    position: absolute;
    bottom: 5vh;
    left: 50%;
    transform: translateX(-50%);
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    border-bottom: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.home-scroll-hint:hover {
    opacity: 0.85;
    border-bottom: none;
    color: inherit;
}

/* 鼠标图标 */
.home-scroll-mouse {
    width: 24px;
    height: 38px;
    border: 2px solid rgba(232, 226, 214, 0.8);
    border-radius: 12px;
    position: relative;
    background: rgba(232, 226, 214, 0.05);
}

/* 滚轮 */
.home-scroll-wheel {
    display: block;
    width: 4px;
    height: 8px;
    background: #e8e2d6;
    border-radius: 2px;
    position: absolute;
    top: 6px;
    left: 50%;
    transform: translateX(-50%);
    animation: homeScrollWheel 1.8s ease-in-out infinite;
}

/* 箭头 */
.home-scroll-arrow {
    color: #e8e2d6;
    animation: homeScrollArrow 1.8s ease-in-out infinite;
    animation-delay: 0.3s;
}

.home-scroll-text {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.15em;
    color: #e8e2d6;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
    animation: homeScrollText 1.8s ease-in-out infinite;
}

@keyframes homeScrollWheel {
    0% {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
    50% {
        opacity: 0.3;
        transform: translateX(-50%) translateY(12px);
    }
    100% {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

@keyframes homeScrollArrow {
    0%, 100% {
        opacity: 0.5;
        transform: translateY(0);
    }
    50% {
        opacity: 1;
        transform: translateY(-4px);
    }
}

@keyframes homeScrollText {
    0%, 100% {
        opacity: 0.7;
    }
    50% {
        opacity: 1;
    }
}

/* 响应式适配 */
@media (max-width: 768px) {
    .home-content {
        padding: 0 6vw 8vh;
    }

    .home-logo {
        gap: 10px;
        margin-bottom: 32px;
    }

    .home-logo svg {
        width: 40px;
        height: 40px;
    }

    .home-logo-text {
        font-size: 22px;
        letter-spacing: 0.06em;
    }

    .home-logo-divider {
        margin: 0 4px;
    }

    .home-logo-sub {
        font-size: 18px;
        letter-spacing: 0.08em;
    }

    .home-social {
        gap: 10px;
        margin-bottom: 36px;
    }

    .home-social-link {
        width: 34px;
        height: 34px;
    }

    .home-social-link svg {
        width: 16px;
        height: 16px;
    }

    .home-social-links {
        display: none;
    }

    .home-slogan {
        margin-bottom: 80px;
    }

    .home-slogan p {
        font-size: 18px;
        line-height: 1.7;
    }

    .home-scroll-hint {
        bottom: 4vh;
        gap: 8px;
    }

    .home-scroll-mouse {
        width: 20px;
        height: 32px;
    }

    .home-scroll-wheel {
        width: 3px;
        height: 6px;
    }

    .home-scroll-arrow {
        width: 16px;
        height: 10px;
    }

    .home-scroll-text {
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .home-slogan p br {
        display: none;
    }

    .home-logo-text {
        font-size: 18px;
        white-space: normal;
        line-height: 1.3;
    }

    .home-logo-sub {
        font-size: 15px;
    }
}

/* 首页隐藏顶部导航栏 */
body.home-landing .site-nav {
    display: none;
}

/* ===== 分类页面布局：左侧标签栏 + 右侧网格 ===== */
.category-layout {
    display: flex;
    max-width: 1280px;
    margin: 0 auto;
    padding: 32px 28px 60px;
    gap: 24px;
    align-items: flex-start;
}

/* 左侧标签筛选栏 */
.category-sidebar {
    flex: 0 0 240px;
    min-width: 0;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 16px 0;
    position: sticky;
    top: 64px;
}

.category-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px 12px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--border);
}

.category-sidebar-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: 0.02em;
}

.category-sidebar-count {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-muted);
}

.category-tag-list {
    display: flex;
    flex-direction: column;
}

.category-tag-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    font-size: 14px;
    color: var(--text-secondary);
    border: none;
    transition: all 0.2s ease;
}

.category-tag-item:hover {
    background: var(--bg-elevated);
    color: var(--text-primary);
    border: none;
}

.category-tag-item.is-active {
    background: var(--btn-bg);
    color: var(--btn-text);
    font-weight: 600;
}

.category-tag-item.is-active:hover {
    background: var(--btn-bg-hover);
    color: var(--btn-text);
}

.category-tag-name {
    flex: 1;
}

.category-tag-count {
    font-size: 13px;
    font-weight: 600;
    color: inherit;
    opacity: 0.7;
}

/* 右侧主内容区 */
.category-main {
    flex: 1;
    min-width: 0;
}

/* 文章网格 */
.category-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

/* 提示词卡片 */
.prompt-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.25s ease;
}

.prompt-card:hover {
    border-color: var(--border-strong);
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4);
}

.prompt-card-link {
    display: block;
    border: none;
}

.prompt-card-link:hover {
    border: none;
}

/* 封面区域 */
.prompt-card-cover {
    position: relative;
    aspect-ratio: 21/9;
    background: #000;
    overflow: hidden;
}

.prompt-card-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.prompt-card:hover .prompt-card-cover img {
    transform: scale(1.05);
}

.prompt-card-cover-empty {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-elevated);
    color: var(--text-muted);
    font-size: 13px;
}

.prompt-card-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(8px);
    border-radius: 999px;
    padding: 5px 12px;
}

.prompt-card-ratio {
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.03em;
}

.prompt-card-frame {
    font-size: 11px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.7);
    letter-spacing: 0.08em;
}

/* 卡片内容区 */
.prompt-card-body {
    padding: 20px;
}

.prompt-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.prompt-card-tag {
    display: inline-block;
    padding: 4px 12px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--tag-text);
    background: var(--tag-bg);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.prompt-card-title {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0 0 12px;
    color: var(--text-primary);
    letter-spacing: 0.01em;
}

.prompt-card-excerpt {
    font-size: 14px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 分页 */
.category-pagination {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

.category-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    margin: 0 4px;
    font-size: 14px;
    color: var(--text-secondary);
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 6px;
    transition: all 0.2s ease;
    border-bottom: none;
}

.category-pagination .page-numbers:hover {
    background: var(--bg-elevated);
    color: var(--text-primary);
    border-color: var(--border-strong);
    border-bottom: none;
}

.category-pagination .page-numbers.current {
    background: var(--btn-bg);
    color: var(--btn-text);
    border-color: var(--btn-bg);
    font-weight: 600;
}

.category-pagination ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
}

.category-pagination li {
    margin: 0;
    padding: 0;
}

/* 空状态 */
.category-empty {
    text-align: center;
    padding: 80px 20px;
    color: var(--text-muted);
    font-size: 15px;
}

/* 无限下拉：加载触发哨兵 */
.category-load-more {
    height: 1px;
    margin-top: 24px;
}

/* 无限下拉：加载状态提示 */
.category-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 32px 0 8px;
    color: var(--text-muted);
    font-size: 14px;
}

.category-loading-spinner {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--btn-bg);
    border-radius: 50%;
    animation: categorySpin 0.8s linear infinite;
}

@keyframes categorySpin {
    to {
        transform: rotate(360deg);
    }
}

/* 响应式适配 */
@media (max-width: 1024px) {
    .category-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .category-layout {
        flex-direction: column;
        padding: 20px 16px 40px;
        gap: 20px;
    }

    .category-sidebar {
        flex: 0 0 auto;
        width: 100%;
        position: static;
    }

    .category-tag-list {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px;
        padding: 0 16px;
    }

    .category-sidebar-header {
        padding-bottom: 12px;
    }

    .category-tag-item {
        padding: 6px 14px;
        border-radius: 999px;
        border: 1px solid var(--border);
        background: var(--bg);
    }

    .category-tag-item.is-active {
        border-color: var(--btn-bg);
    }

    .category-tag-count {
        margin-left: 6px;
    }

    .category-grid {
        grid-template-columns: 1fr;
    }
}
