/* ============================================================
   Dark Business Theme - Global Override
   暗色商务主题 - 全局覆盖
   ============================================================ */

/* ---- CSS Variables ---- */
:root {
    --db-bg: #0a0e14;
    --db-bg-panel: #11161d;
    --db-bg-elevated: #161c26;
    --db-bg-input: #0d1117;
    --db-border: #1e2631;
    --db-border-strong: #2a3543;
    --db-primary: #2563eb;
    --db-primary-hover: #1d4ed8;
    --db-primary-soft: rgba(37, 99, 235, 0.12);
    --db-primary-ring: rgba(37, 99, 235, 0.35);
    --db-text: #e6edf3;
    --db-text-muted: #8b949e;
    --db-text-faint: #6e7681;
    --db-success: #10b981;
    --db-error: #ef4444;
    --db-warning: #f59e0b;
}

/* ---- Override Tailwind body classes ---- */
body.bg-gray-50:not(.homepage), body.bg-white:not(.homepage) { background-color: var(--db-bg) !important; }
body.text-gray-800 { color: var(--db-text) !important; }

/* ---- Base ---- */
body:not(.homepage) {
    background: var(--db-bg) !important;
    color: var(--db-text) !important;
}

/* ---- Navbar ---- */
.navbar {
    background: var(--db-bg-panel) !important;
    border-bottom: 1px solid var(--db-border) !important;
    backdrop-filter: blur(12px);
}
.nav-brand { color: var(--db-text) !important; }
.nav-brand .brand-accent { color: var(--db-primary) !important; }
.nav-links a { color: var(--db-text-muted) !important; }
.nav-links a:hover { color: var(--db-primary) !important; }

/* Theme switch button in dark mode */
.theme-switch {
    background: var(--db-bg-elevated) !important;
    border-color: var(--db-border-strong) !important;
    color: var(--db-text-muted) !important;
}
.theme-switch:hover { background: var(--db-border) !important; }
.theme-icon-dark { display: inline-block !important; }
.theme-icon-light { display: none !important; }

/* ---- Sidebar ---- */
.sidebar {
    background: var(--db-bg-panel) !important;
    border-right: 1px solid var(--db-border) !important;
}
.sidebar-header {
    background: var(--db-bg-elevated) !important;
    border-bottom: 1px solid var(--db-border) !important;
}
.sidebar-username { color: var(--db-text) !important; }
.sidebar-role { color: var(--db-text-muted) !important; }
.sidebar-avatar {
    background: var(--db-primary) !important;
    color: #fff !important;
}
.sidebar-link { color: var(--db-text-muted) !important; }
.sidebar-link:hover {
    background: var(--db-bg-elevated) !important;
    color: var(--db-text) !important;
}
.sidebar-link.active {
    background: var(--db-primary-soft) !important;
    color: var(--db-primary) !important;
    font-weight: 600;
    box-shadow: inset 3px 0 0 var(--db-primary);
}
.sidebar-footer { border-top: 1px solid var(--db-border) !important; }

/* ---- Main Content ---- */
.main-content h1, .main-content h2, .main-content h3 { color: var(--db-text) !important; }

/* ---- Cards (all types) ---- */
.content-card, .dashboard-card, .feature-card, .knowledge-card,
.admin-card, .admin-stat-card, .dash-chart-wrap, .dash-stat-card,
.stat-card, .main-content .card, .main-content .panel, .auth-form {
    background: var(--db-bg-panel) !important;
    border: 1px solid var(--db-border) !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
    color: var(--db-text) !important;
}
.content-card li, .feature-card p, .knowledge-card p,
.dashboard-card p, .content-card p { color: var(--db-text-muted) !important; }
.card h3, .feature-card h3, .knowledge-card h3, .dashboard-card h3 { color: var(--db-text) !important; }

/* ---- Admin Page Header ---- */
.admin-page-header h1 { color: var(--db-text) !important; }
.admin-page-header p { color: var(--db-text-muted) !important; }
.admin-card-body h3 { color: var(--db-text) !important; }
.admin-card-body p { color: var(--db-text-muted) !important; }
.admin-stat-num, .dash-stat-num, .stat-number { color: var(--db-primary) !important; }
.admin-stat-label, .dash-stat-label, .stat-label { color: var(--db-text-muted) !important; }
.dash-chart-header h3, .dash-kw-title { color: var(--db-text) !important; }

/* ---- Tables ---- */
.admin-table thead th, .info-table td { color: var(--db-text-muted) !important; }
.admin-table tbody tr { border-bottom-color: var(--db-border) !important; }
.admin-table tbody tr:hover { background: var(--db-bg-elevated) !important; }
.admin-table tbody td, .info-table td { color: var(--db-text) !important; }
.admin-table tbody td:first-child { color: var(--db-text-muted) !important; }
.info-table td { border-bottom-color: var(--db-border) !important; }
.info-table td:first-child { color: var(--db-text-muted) !important; }

/* Table in publisher page */
.pub-wrap table th { border-bottom-color: var(--db-border-strong) !important; }
.pub-wrap table td { border-bottom-color: var(--db-border) !important; }
.pub-wrap table tr:hover td { background: var(--db-bg-elevated) !important; }

/* ---- Forms & Inputs ---- */
.form-group label, .admin-form-group label { color: var(--db-text) !important; }
.form-group input, .form-group select, .form-group textarea,
.admin-form-group input, .admin-form-group select, .admin-form-group textarea,
input, select, textarea {
    background: var(--db-bg-input) !important;
    color: var(--db-text) !important;
    border-color: var(--db-border-strong) !important;
}
.form-group input:focus, .form-group textarea:focus,
.admin-form-group input:focus, .admin-form-group select:focus,
input:focus, select:focus, textarea:focus {
    border-color: var(--db-primary) !important;
    box-shadow: 0 0 0 3px var(--db-primary-soft) !important;
    outline: none !important;
}
input::placeholder, textarea::placeholder { color: var(--db-text-faint) !important; }

/* ---- Buttons ---- */
.btn-primary, .admin-btn-primary, .btn-prime {
    background: var(--db-primary) !important;
    border-color: var(--db-primary) !important;
    color: #fff !important;
}
.btn-primary:hover, .admin-btn-primary:hover, .btn-prime:hover {
    background: var(--db-primary-hover) !important;
    border-color: var(--db-primary-hover) !important;
}
.btn-outline, .admin-btn-ghost, .btn-ghost {
    background: var(--db-bg-elevated) !important;
    border-color: var(--db-border-strong) !important;
    color: var(--db-text) !important;
}
.btn-outline:hover, .admin-btn-ghost:hover {
    border-color: var(--db-primary) !important;
    color: var(--db-primary) !important;
    background: var(--db-primary-soft) !important;
}
.btn-ghost { border-color: var(--db-border-strong) !important; color: var(--db-text) !important; }
.btn-ghost:hover { border-color: var(--db-primary) !important; color: var(--db-primary) !important; }
.btn-success, .admin-btn-accent {
    background: var(--db-success) !important;
    border-color: var(--db-success) !important;
    color: #fff !important;
}
.admin-btn-accent:hover { background: #059669 !important; }

/* Quick links */
.quick-links a, .admin-table a { color: var(--db-primary) !important; }
.quick-links a:hover, .admin-table a:hover { color: #60a5fa !important; }

/* ---- Alerts ---- */
.alert-success { background: rgba(16, 185, 129, 0.1) !important; color: var(--db-success) !important; border-color: rgba(16, 185, 129, 0.3) !important; }
.alert-error, .alert-danger { background: rgba(239, 68, 68, 0.1) !important; color: var(--db-error) !important; border-color: rgba(239, 68, 68, 0.3) !important; }
.alert-warning { background: rgba(245, 158, 11, 0.1) !important; color: var(--db-warning) !important; border-color: rgba(245, 158, 11, 0.3) !important; }
.alert-info { background: var(--db-primary-soft) !important; color: var(--db-primary) !important; border-color: var(--db-primary-ring) !important; }

/* ---- Stat Icons ---- */
.stat-icon.blue { background: rgba(37, 99, 235, 0.15) !important; }
.stat-icon.green { background: rgba(16, 185, 129, 0.15) !important; }
.stat-icon.orange { background: rgba(245, 158, 11, 0.15) !important; }
.stat-icon.purple { background: rgba(139, 92, 246, 0.15) !important; }

/* ---- Dashboard Keyword Items ---- */
.dash-kw-item, .admin-kw-item {
    background: var(--db-bg-elevated) !important;
    color: var(--db-text) !important;
    border-color: var(--db-border) !important;
}
.dash-kw-text, .admin-kw-item { color: var(--db-text) !important; }

/* ---- Footer ---- */
.footer {
    background: var(--db-bg-panel) !important;
    border-top: 1px solid var(--db-border) !important;
}
.footer p { color: var(--db-text-faint) !important; }

/* ---- Auth Form ---- */
.auth-form h2 { color: var(--db-text) !important; }
.auth-alt { color: var(--db-text-muted) !important; }
.auth-alt a { color: var(--db-primary) !important; }

/* ---- Error Page ---- */
.error-page h1 { color: var(--db-border-strong) !important; }
.error-page p { color: var(--db-text-muted) !important; }

/* ---- Hero / Homepage (subtle darkening, keep artwork feel) ---- */
.geo-hero {
    background: linear-gradient(180deg, #0c1118 0%, #0a0e14 50%, #0c1118 100%) !important;
}
.geo-hero-title { color: var(--db-text) !important; }
.geo-hero-sub { color: var(--db-text-muted) !important; }
.geo-badge {
    background: var(--db-primary-soft) !important;
    color: var(--db-primary) !important;
    border-color: var(--db-primary-ring) !important;
}
.btn-ghost { color: var(--db-text) !important; }

/* ---- Section headers on homepage ---- */
.hero h1 { color: var(--db-text) !important; }
.hero-sub { color: var(--db-text-muted) !important; }

/* ---- Scrollbar (webkit) ---- */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--db-bg); }
::-webkit-scrollbar-thumb { background: var(--db-border-strong); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #3a4759; }

/* ---- Code / pre ---- */
code {
    background: var(--db-bg-input) !important;
    border: 1px solid var(--db-border) !important;
    color: #7dd3fc !important;
}

/* ---- Select dropdown options ---- */
select option {
    background: var(--db-bg-panel);
    color: var(--db-text);
}

/* ---- Disabled inputs ---- */
input:disabled, select:disabled, textarea:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ============================================================
   Inline Style Overrides - Catches hardcoded light colors in PHP pages
   These target inline style attributes across all pages
   ============================================================ */

/* White/light backgrounds → dark panel */
[style*="background:#11161d" i],
[style*="background:#11161d" i],
[style*="background:#11161d" i],
[style*="background:#11161d" i],
[style*="background:#11161d" i] {
    background: #11161d !important;
}

/* Very light gray backgrounds (like #fafafa, #f9fafb, #f3f4f6, #f5f5f7) */
[style*="background:#161c26" i],
[style*="background:#161c26" i],
[style*="background:#161c26" i],
[style*="background:#f5f5f7" i],
[style*="background:#f8fafc" i] {
    background: #161c26 !important;
}

/* Light yellow/amber backgrounds (trial cards etc) */
[style*="background:rgba(245,158,11,0.08)" i] {
    background: rgba(245, 158, 11, 0.08) !important;
}

/* Dark text colors (meant for light bg) → light text for dark bg */
[style*="color:#e6edf3" i],
[style*="color:#e6edf3" i],
[style*="color:#e6edf3" i] {
    color: #e6edf3 !important;
}

/* Muted gray text colors */
[style*="color:#8b949e" i],
[style*="color:#6e7681" i],
[style*="color:#8b949e" i] {
    color: #8b949e !important;
}

/* Purple accent colors → blue */
[style*="color:#1e40af" i],
[style*="color:#2563eb" i],
[style*="color:#a78bfa" i],
[style*="color:#c4b5fd" i],
[style*="color:#e9d5ff" i] {
    color: #93c5fd !important;
}

/* Purple button backgrounds → blue */
[style*="background:#1e40af" i],
[style*="background:#2563eb" i] {
    background: #2563eb !important;
}

/* Purple gradient → blue gradient */
[style*="linear-gradient(135deg,#1e3a8a" i] {
    background: linear-gradient(135deg, #1e3a5f, #2563eb) !important;
}

/* Light borders */
[style*="border:1px solid #2a3543" i],
[style*="border:1px solid #2a3543" i],
[style*="border:1px solid #2a3543" i] {
    border-color: #1e2631 !important;
}
[style*="border-bottom:1px solid #fafafa" i],
[style*="border-bottom:1px solid #2a3543" i] {
    border-bottom-color: #1e2631 !important;
}

/* Light shadows → dark shadows */
[style*="box-shadow:0 1px 3px rgba(0,0,0,0.04)" i],
[style*="box-shadow:0 1px 3px rgba(0,0,0,0.06)" i] {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
}

/* Amber/yellow text on amber bg (trial card) */
[style*="color:#f59e0b" i],
[style*="color:#f59e0b" i] {
    color: #f59e0b !important;
}

/* Amber button bg */
[style*="background:rgba(245,158,11,0.08)" i] {
    background: rgba(245, 158, 11, 0.1) !important;
}
[style*="border:1px solid #fde68a" i] {
    border-color: rgba(245, 158, 11, 0.3) !important;
}


/* ============================================
   增强覆盖：设置页面及其他内联浅色样式
   ============================================ */

/* 所有白色/浅色背景 → 深色面板 */
[style*="background:#11161d" i],
[style*="background:#11161d" i],
[style*="background:#11161d" i],
[style*="background:#11161d" i] {
    background: #11161d !important;
}
[style*="background:#161c26" i],
[style*="background:#161c26" i],
[style*="background:#161c26" i] {
    background: #161c26 !important;
}

/* 浅色边框 → 深色边框 */
[style*="border:1px solid #2a3543" i],
[style*="border:1px solid #2a3543" i],
[style*="border:1px solid #2a3543" i],
[style*="border:1px solid #2a3543" i],
[style*="border:2px dashed #2a3543" i],
[style*="border:2px dashed #2a3543" i] {
    border-color: #2a3543 !important;
}
[style*="border-bottom:1px solid #2a3543" i],
[style*="border-bottom:1px solid #2a3543" i],
[style*="border-bottom:1px solid #2a3543" i] {
    border-bottom-color: #2a3543 !important;
}
[style*="border:1px solid #fca5a5" i] {
    border-color: rgba(239, 68, 68, 0.4) !important;
}

/* 浅色文字 → 适配暗色 */
[style*="color:#e6edf3" i],
[style*="color:#e6edf3" i],
[style*="color:#e6edf3" i] {
    color: #e6edf3 !important;
}
[style*="color:#8b949e" i],
[style*="color:#8b949e" i] {
    color: #8b949e !important;
}
[style*="color:#6e7681" i],
[style*="color:#6e7681" i],
[style*="color:#6e7681" i] {
    color: #6e7681 !important;
}

/* 红色删除按钮 */
[style*="background:rgba(239,68,68,0.1)" i] {
    background: rgba(239, 68, 68, 0.1) !important;
}
[style*="color:#f87171" i] {
    color: #f87171 !important;
}

/* 绿色成功元素 */
[style*="background:#10b981" i],
[style*="background:#059669" i] {
    background: #059669 !important;
}

/* 按钮通用修复 */
[style*="background:#2563eb" i] {
    background: #2563eb !important;
}
[style*="color:#2563eb" i] {
    color: #3b82f6 !important;
}

/* 紫色系 → 蓝色系 */
[style*="background:#2563eb" i] {
    background: #2563eb !important;
}
[style*="background:#2563eb" i] {
    background: #2563eb !important;
}

/* 标签/徽章的浅色背景 */
[style*="background:rgba(37,99,235,0.1)" i] {
    background: rgba(37, 99, 235, 0.15) !important;
}
[style*="background:rgba(16,185,129,0.1)" i] {
    background: rgba(16, 185, 129, 0.1) !important;
}
[style*="background:rgba(245,158,11,0.1)" i] {
    background: rgba(245, 158, 11, 0.1) !important;
}
[style*="background:rgba(239,68,68,0.1)" i] {
    background: rgba(239, 68, 68, 0.1) !important;
}

/* textarea / input 内联浅色 */
[style*="background:#11161d" i][style*="border:1px solid #2a3543" i] {
    background: #0d1117 !important;
    border-color: #2a3543 !important;
    color: #e6edf3 !important;
}


/* ---- Smooth transitions for theme change ---- */
body, .navbar, .sidebar, .sidebar-header, .sidebar-link,
.admin-card, .content-card, .dash-chart-wrap, input, select, textarea,
.btn, .admin-btn, .footer {
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}


/* === 品牌标题：居中 + 动态渐变闪烁 === */
.brand-centered {
    z-index: 10;
    white-space: nowrap;
}
.brand-gradient-text {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 1px;
    background: linear-gradient(90deg, #2563eb, #8b5cf6, #06b6d4, #10b981, #2563eb);
    background-size: 300% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: brandGradient 4s ease-in-out infinite;
}
.brand-gradient-text .brand-accent {
    background: linear-gradient(90deg, #06b6d4, #2563eb, #8b5cf6, #06b6d4);
    background-size: 300% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: brandGradient 3s ease-in-out infinite reverse;
}
@keyframes brandGradient {
    0%   { background-position: 0% center; }
    50%  { background-position: 100% center; }
    100% { background-position: 0% center; }
}

/* 品牌星星图标也加点光效 */
.brand-centered .brand-mark {
    color: #2563eb;
    animation: starPulse 2s ease-in-out infinite;
}
@keyframes starPulse {
    0%, 100% { opacity: 1; text-shadow: 0 0 4px rgba(37,99,235,0.5); }
    50%      { opacity: 0.7; text-shadow: 0 0 12px rgba(37,99,235,0.9); }
}

/* 确保导航链接不与居中标题重叠 */
.nav-inner .nav-links {
    margin-left: auto;
}
@media (max-width: 768px) {
    .brand-centered {
        position: static !important;
        transform: none !important;
        left: auto !important;
    }
    .nav-inner {
        flex-wrap: wrap;
        justify-content: center !important;
        gap: 8px;
    }
}


/* === 强制覆盖 Tailwind 白色背景 === */
body.bg-white:not(.homepage), body.bg-gray-50:not(.homepage), body.bg-gray-100:not(.homepage) {
    background: #0a0e14 !important;
}
body.font-inter.text-gray-800:not(.homepage) {
    background: #0a0e14 !important;
    color: #e6edf3 !important;
}
.bg-white:not(body) { background: #11161d !important; }
.bg-gray-50:not(body) { background: #0a0e14 !important; }
.bg-gray-100 { background: #11161d !important; }
.bg-gray-200 { background: #161c26 !important; }
.text-gray-800 { color: #e6edf3 !important; }
.text-gray-700 { color: #c9d1d9 !important; }
.text-gray-600 { color: #8b949e !important; }
.text-gray-500 { color: #6e7681 !important; }

/* 确保所有卡片不出现白色 */
.geo-feature-card, .admin-card, .stat-card, .feature-card,
div[style*="background:#fff"], div[style*="background: #fff"],
div[style*="background:white"], div[style*="background: white"] {
    background: #11161d !important;
}
