/* ===== 简库深色模式 CSS ===== */
/* 依赖 :root 中 --jk-primary-r/g/b 变量 */

/* ===== 亮色模式变量（默认） ===== */
:root {
    --jk-bg-primary: #ffffff;
    --jk-bg-secondary: #f9fafb;
    --jk-bg-tertiary: #f3f4f6;
    --jk-bg-card: #ffffff;
    --jk-bg-input: #ffffff;
    --jk-border-color: #e5e7eb;
    --jk-border-light: #f3f4f6;
    --jk-text-primary: #1f2937;
    --jk-text-secondary: #4b5563;
    --jk-text-tertiary: #9ca3af;
}

/* ===== 暗色模式变量（必须在 :root 之后） ===== */
.dark {
    --jk-bg-primary: #0f0f1a;
    --jk-bg-secondary: #16162a;
    --jk-bg-tertiary: #1e1e36;
    --jk-bg-card: #1a1a2e;
    --jk-bg-input: #222240;
    --jk-border-color: #2a2a4a;
    --jk-border-light: #252545;
    --jk-text-primary: #f0f0f5;
    --jk-text-secondary: #b0b0c8;
    --jk-text-tertiary: #7878a0;
}

/* ===== body 背景 ===== */
.dark body, body.dark { background-color: var(--jk-bg-primary) !important; }

/* ===== 玻璃态导航/卡片 ===== */
.dark .glass-card, .dark .glass-nav {
    background: rgba(26, 26, 46, 0.8) !important;
    border-color: var(--jk-border-color) !important;
    backdrop-filter: blur(20px) saturate(1.2) !important;
}

/* ===== 背景色覆盖 ===== */
.dark .bg-white { background-color: var(--jk-bg-card) !important; }
.dark .bg-gray-50 { background-color: var(--jk-bg-primary) !important; }
.dark .bg-gray-100 { background-color: var(--jk-bg-secondary) !important; }
.dark .bg-gray-200 { background-color: var(--jk-bg-tertiary) !important; }
.dark .bg-white\/50 { background-color: rgba(26, 26, 46, 0.5) !important; }
.dark .bg-white\/70 { background-color: rgba(26, 26, 46, 0.7) !important; }
.dark .bg-white\/80 { background-color: rgba(26, 26, 46, 0.8) !important; }
.dark .bg-white\/90 { background-color: rgba(26, 26, 46, 0.9) !important; }
.dark .bg-white\/95 { background-color: rgba(26, 26, 46, 0.95) !important; }
.dark .bg-gray-50\/30 { background-color: rgba(22, 22, 42, 0.3) !important; }
.dark .bg-gray-50\/50 { background-color: rgba(22, 22, 42, 0.5) !important; }
.dark .bg-gray-50\/80 { background-color: rgba(22, 22, 42, 0.8) !important; }
.dark .bg-gray-100\/50 { background-color: rgba(30, 30, 54, 0.5) !important; }
.dark .bg-gray-100\/80 { background-color: rgba(30, 30, 54, 0.8) !important; }
.dark .bg-gray-200\/50 { background-color: rgba(30, 30, 54, 0.5) !important; }
.dark .bg-black\/5 { background-color: rgba(255, 255, 255, 0.05) !important; }
.dark .bg-black\/10 { background-color: rgba(255, 255, 255, 0.08) !important; }

/* ===== 文字颜色 ===== */
.dark .text-gray-900 { color: var(--jk-text-primary) !important; }
.dark .text-gray-800 { color: var(--jk-text-primary) !important; }
.dark .text-gray-700 { color: var(--jk-text-primary) !important; }
.dark .text-gray-600 { color: var(--jk-text-secondary) !important; }
.dark .text-gray-500 { color: var(--jk-text-secondary) !important; }
.dark .text-gray-400 { color: var(--jk-text-tertiary) !important; }
.dark .text-gray-300 { color: var(--jk-text-tertiary) !important; }
.dark .text-gray-200 { color: var(--jk-text-tertiary) !important; }
.dark .from-gray-900 { --tw-gradient-from: #f0f0f5 var(--tw-gradient-from-position) !important; }
.dark .to-gray-700 { --tw-gradient-to: #b0b0c8 var(--tw-gradient-to-position) !important; }
.dark .from-gray-800 { --tw-gradient-from: #f0f0f5 var(--tw-gradient-from-position) !important; }
.dark .to-gray-600 { --tw-gradient-to: #b0b0c8 var(--tw-gradient-to-position) !important; }

/* ===== 边框 ===== */
.dark .border-gray-100 { border-color: var(--jk-border-light) !important; }
.dark .border-gray-200 { border-color: var(--jk-border-color) !important; }
.dark .border-gray-300 { border-color: var(--jk-border-color) !important; }
.dark .border-gray-100\/50 { border-color: rgba(37, 37, 69, 0.5) !important; }
.dark .border-gray-200\/50 { border-color: rgba(42, 42, 74, 0.5) !important; }
.dark .divide-gray-100 > :not(:last-child) { border-color: var(--jk-border-light) !important; }
.dark .divide-gray-200 > :not(:last-child) { border-color: var(--jk-border-color) !important; }

/* ===== hover 效果 ===== */
.dark .hover\:bg-gray-50:hover { background-color: var(--jk-bg-tertiary) !important; }
.dark .hover\:bg-gray-100:hover { background-color: var(--jk-bg-tertiary) !important; }
.dark .hover\:bg-white:hover { background-color: var(--jk-bg-card) !important; }
.dark .hover\:bg-gray-50\/50:hover { background-color: rgba(22, 22, 42, 0.5) !important; }
.dark .hover\:bg-gray-200:hover { background-color: var(--jk-bg-tertiary) !important; }
.dark .hover\:text-gray-700:hover { color: var(--jk-text-primary) !important; }
.dark .hover\:text-gray-900:hover { color: var(--jk-text-primary) !important; }
.dark .hover\:text-gray-600:hover { color: var(--jk-text-secondary) !important; }
.dark .hover\:border-gray-300:hover { border-color: var(--jk-border-color) !important; }
.dark .hover\:border-gray-200:hover { border-color: var(--jk-border-color) !important; }

/* ===== 输入框 ===== */
.dark input[type="text"], .dark input[type="email"], .dark input[type="password"],
.dark input[type="number"], .dark input[type="url"], .dark input[type="search"],
.dark input[type="tel"], .dark textarea, .dark select {
    background-color: var(--jk-bg-input) !important;
    border-color: var(--jk-border-color) !important;
    color: var(--jk-text-primary) !important;
}
.dark input::placeholder, .dark textarea::placeholder { color: var(--jk-text-tertiary) !important; }
.dark input:focus, .dark textarea:focus, .dark select:focus {
    border-color: var(--jk-primary) !important;
    box-shadow: 0 0 0 3px rgba(var(--jk-primary-r), var(--jk-primary-g), var(--jk-primary-b), 0.2) !important;
}

/* ===== 阴影适配 ===== */
.dark .shadow-sm { box-shadow: 0 1px 2px rgba(0,0,0,0.3) !important; }
.dark .shadow { box-shadow: 0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.2) !important; }
.dark .shadow-md { box-shadow: 0 4px 6px rgba(0,0,0,0.4), 0 2px 4px rgba(0,0,0,0.3) !important; }
.dark .shadow-lg { box-shadow: 0 4px 12px rgba(0,0,0,0.5), 0 2px 4px rgba(0,0,0,0.3) !important; }
.dark .shadow-xl { box-shadow: 0 8px 24px rgba(0,0,0,0.5) !important; }
.dark .shadow-2xl { box-shadow: 0 12px 40px rgba(0,0,0,0.6) !important; }

/* ===== 导航栏 ===== */
.dark .glass-nav { border-color: rgba(42, 42, 74, 0.5) !important; }
.dark .bg-gray-100\/50 { background-color: rgba(30, 30, 54, 0.5) !important; }
.dark .border-gray-200\/50 { border-color: rgba(42, 42, 74, 0.5) !important; }
.dark nav .bg-white { background-color: var(--jk-bg-tertiary) !important; }
.dark nav .text-gray-900 { color: var(--jk-text-primary) !important; }
.dark nav .text-gray-500 { color: var(--jk-text-secondary) !important; }
.dark nav .hover\:text-gray-900:hover { color: var(--jk-text-primary) !important; }
.dark nav .hover\:bg-gray-200\/50:hover { background-color: rgba(30, 30, 54, 0.5) !important; }

/* ===== 卡片阴影 ===== */
.dark .glass-card { box-shadow: 0 2px 8px rgba(0,0,0,0.3) !important; }
.dark .card-shadow { box-shadow: 0 2px 8px rgba(0,0,0,0.3) !important; }

/* ===== 滚动条 ===== */
.dark ::-webkit-scrollbar { width: 8px; height: 8px; background: var(--jk-bg-secondary); }
.dark ::-webkit-scrollbar-track { background: var(--jk-bg-primary); }
.dark ::-webkit-scrollbar-thumb { background: #3a3a5a; border-radius: 4px; }
.dark ::-webkit-scrollbar-thumb:hover { background: #4a4a6a; }

/* ===== 特殊元素适配 ===== */
.dark .cat-card-glow {
    background: radial-gradient(circle, rgba(var(--jk-primary-r), var(--jk-primary-g), var(--jk-primary-b), 0.15) 0%, rgba(var(--jk-primary-r), var(--jk-primary-g), var(--jk-primary-b), 0.05) 35%, transparent 70%) !important;
}
.dark .btn-primary { box-shadow: 0 4px 10px rgba(var(--jk-primary-r), var(--jk-primary-g), var(--jk-primary-b), 0.35) !important; }
.dark .btn-primary:hover { box-shadow: 0 6px 14px rgba(var(--jk-primary-r), var(--jk-primary-g), var(--jk-primary-b), 0.45) !important; }

/* ===== 搜索框/建议 ===== */
.dark .search-box, .dark [class*="search"] input {
    background-color: var(--jk-bg-input) !important;
    border-color: var(--jk-border-color) !important;
    color: var(--jk-text-primary) !important;
}
.dark #search-suggestions { background-color: var(--jk-bg-card) !important; border-color: var(--jk-border-color) !important; }
.dark #search-suggestions a { color: var(--jk-text-secondary) !important; }
.dark #search-suggestions a:hover { background-color: var(--jk-bg-tertiary) !important; color: var(--jk-primary) !important; }

/* ===== 下拉菜单/用户菜单 ===== */
.dark .dropdown-menu, .dark #user-menu, .dark #lang-dropdown {
    background-color: var(--jk-bg-card) !important;
    border-color: var(--jk-border-color) !important;
}
.dark #user-menu a { color: var(--jk-text-primary) !important; }
.dark #user-menu a:hover { background-color: var(--jk-bg-tertiary) !important; }

/* ===== 移动端搜索栏/侧边栏 ===== */
.dark #mobile-search-bar { background-color: rgba(15, 15, 26, 0.95) !important; border-color: var(--jk-border-color) !important; }
.dark #mobile-drawer { background-color: var(--jk-bg-card) !important; }
.dark #mobile-overlay { background-color: rgba(0, 0, 0, 0.6) !important; }

/* ===== 表格 ===== */
.dark table { border-color: var(--jk-border-color) !important; }
.dark th { background-color: var(--jk-bg-tertiary) !important; color: var(--jk-text-primary) !important; }
.dark td { border-color: var(--jk-border-light) !important; color: var(--jk-text-primary) !important; }
.dark tr:nth-child(even) td { background-color: var(--jk-bg-secondary) !important; }
.dark tr:hover td { background-color: var(--jk-bg-tertiary) !important; }

/* ===== hr ===== */
.dark hr { border-color: var(--jk-border-light) !important; }

/* ===== 选中文字 ===== */
.dark ::selection { background: rgba(var(--jk-primary-r), var(--jk-primary-g), var(--jk-primary-b), 0.4); color: #fff; }

/* ===== Markdown 适配 ===== */
.dark .markdown-body { color: var(--jk-text-primary) !important; }
.dark .markdown-body h1 { border-bottom-color: var(--jk-border-color) !important; }
.dark .markdown-body h2 { border-bottom-color: var(--jk-border-color) !important; }
.dark .markdown-body blockquote { border-left-color: var(--jk-primary) !important; background: var(--jk-bg-tertiary) !important; color: var(--jk-text-secondary) !important; }
.dark .markdown-body code { background: var(--jk-bg-tertiary) !important; color: #f0a0a0 !important; }
.dark .markdown-body pre { background: #0d1117 !important; }
.dark .markdown-body pre code { color: #e2e8f0 !important; }
.dark .markdown-body table th { background: var(--jk-bg-tertiary) !important; }
.dark .markdown-body table th, .dark .markdown-body table td { border-color: var(--jk-border-color) !important; }
.dark .markdown-body tr:nth-child(even) { background: var(--jk-bg-secondary) !important; }
.dark .markdown-body a { color: var(--jk-primary) !important; }

/* ===== 特殊背景 ===== */
.dark .bg-red-50 { background-color: rgba(220, 38, 38, 0.15) !important; }
.dark .bg-green-50 { background-color: rgba(34, 197, 94, 0.15) !important; }
.dark .bg-blue-50 { background-color: rgba(59, 130, 246, 0.15) !important; }
.dark .bg-yellow-50 { background-color: rgba(234, 179, 8, 0.15) !important; }
.dark .hover\:bg-red-50:hover { background-color: rgba(220, 38, 38, 0.2) !important; }

/* ===== 暗色模式切换过渡 ===== */
.dark body { transition: background-color 0.3s ease, color 0.3s ease; }

/* ===== style.css 硬编码覆盖 ===== */
.dark body { background: var(--jk-bg-primary) !important; color: var(--jk-text-primary) !important; }
.dark .jk-home .glass-card { background: rgba(26, 26, 46, 0.86) !important; background-image: none !important; }
.dark .jk-home .glass-nav, .dark .jk-home .glass-footer { background: rgba(26, 26, 46, 0.86) !important; background-image: none !important; }
.dark .app-detail-page .glass-card { background: rgba(26, 26, 46, 0.92) !important; }
.dark .glass-footer { background: rgba(26, 26, 46, 0.8) !important; border-top-color: var(--jk-border-color) !important; }
.dark .jk-scroll-text { --jk-mask-bg: var(--jk-bg-card) !important; }

/* 滑块验证码适配 */
.dark .jk-slider-captcha-header { color: var(--jk-text-primary) !important; }
.dark .jk-slider-captcha-close { background: var(--jk-bg-tertiary) !important; border-color: var(--jk-border-color) !important; color: var(--jk-text-secondary) !important; }
.dark .jk-slider-captcha-close:hover { background: var(--jk-bg-input) !important; color: var(--jk-text-primary) !important; }
.dark .jk-slider-captcha-hint { color: var(--jk-text-secondary) !important; }
.dark .jk-slider-captcha-track { background: var(--jk-bg-input) !important; border-color: var(--jk-border-color) !important; }
.dark .jk-slider-captcha-knob { background: var(--jk-bg-tertiary) !important; border-color: var(--jk-border-color) !important; }

/* KindEditor 适配 */
.dark .ke-container { border-color: var(--jk-border-color) !important; }
.dark .ke-toolbar { background-color: var(--jk-bg-tertiary) !important; border-bottom-color: var(--jk-border-color) !important; }
.dark .ke-statusbar { background-color: var(--jk-bg-tertiary) !important; border-top-color: var(--jk-border-color) !important; }

/* 移动端表格卡片化 */
.dark .overflow-x-auto table tbody tr { background: var(--jk-bg-card) !important; box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important; }
.dark .overflow-x-auto table tbody td { border-bottom-color: var(--jk-border-light) !important; }
.dark .overflow-x-auto table tbody td::before { color: var(--jk-text-secondary) !important; }

/* SimpleMDE 适配 */
.dark .CodeMirror { background: var(--jk-bg-input) !important; color: var(--jk-text-primary) !important; border-color: var(--jk-border-color) !important; }
.dark .CodeMirror-cursor { border-left-color: var(--jk-text-primary) !important; }
.dark .editor-toolbar { background: var(--jk-bg-tertiary) !important; border-color: var(--jk-border-color) !important; }
.dark .editor-toolbar a { color: var(--jk-text-secondary) !important; }
.dark .editor-toolbar a:hover { color: var(--jk-primary) !important; }
.dark .editor-preview { background: var(--jk-bg-card) !important; }
.dark .editor-preview pre { background: #0d1117 !important; }

/* hljs 代码高亮暗色适配 */
.dark .hljs { background: #0d1117 !important; color: #e2e8f0 !important; }

/* 模态框遮罩 */
.dark .jk-modal { background: rgba(0, 0, 0, 0.6) !important; }

/* 链接颜色 */
.dark .text-blue-500, .dark .text-blue-600 { color: #60a5fa !important; }
.dark .text-red-500 { color: #f87171 !important; }
.dark .text-green-500, .dark .text-green-600 { color: #4ade80 !important; }
.dark .text-yellow-500 { color: #facc15 !important; }

/* ring 颜色 */
.dark .ring-gray-100 { --tw-ring-color: var(--jk-border-light) !important; }
.dark .ring-gray-200 { --tw-ring-color: var(--jk-border-color) !important; }
.dark .ring-gray-300 { --tw-ring-color: var(--jk-border-color) !important; }

/* placeholder 颜色 */
.dark .placeholder-gray-400::placeholder { color: var(--jk-text-tertiary) !important; }
.dark .placeholder-gray-500::placeholder { color: var(--jk-text-tertiary) !important; }
