/* theme.css - Updated with web_chat.css dark mode styles, starry effect, fix for input-container position, and integrated footer support */

.dark-mode {
    --header-primary: #818cf8;
    --header-light: #0f172a;
    --header-dark: #f8fafc;
    --body-bg: #1e293b; /* 深色body背景 */
    --body-text: #e5e7eb; /* 深色文本 */
    --container-bg: #0f172a; /* 深色容器背景 */
    --primary: #6366f1;
    --primary-light: #818cf8;
    --primary-dark: #4f46e5;
    --secondary: #4f46e5;
    --accent: #f472b6;
    --light: #1f2937;
    --dark: #d1d5db;
    --gray: #9ca3af;
    --gray-light: #374151;
    --success: #38bdf8;
    --warning: #fbbf24;
    --error: #f87171;
    --sidebar-primary: #6366f1;
    --content-card-shadow: 0 5px 20px rgba(255, 255, 255, 0.05);
    --footer-primary: rgba(55, 65, 81, 0.85);
    --footer-secondary: rgba(75, 85, 99, 0.85);
    --footer-accent: #a855f7;
}

.dark-mode .header {
    color: #e5e7eb;
    box-shadow: 0 4px 15px rgba(255,255,255,0.05);
}

.dark-mode .header img {
    border: 3px solid rgba(0,0,0,0.2);
    background: rgba(0,0,0,0.1);
}

.dark-mode .header-text {
    text-shadow: 0 2px 4px rgba(255,255,255,0.1);
}

.dark-mode .custom-navbar {
    background: rgba(18, 18, 18, 0.8);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.dark-mode .custom-nav-item .nav-link.active {
    color: var(--header-primary) !important;
    border-bottom: 2px solid var(--header-primary);
}

.dark-mode .language-dropdown-menu {
    background: #1e293b;
    border: 1px solid rgba(255,255,255,0.1);
}

.dark-mode .language-option {
    color: white;
}

.dark-mode .language-option:hover {
    background: rgba(255,255,255,0.05);
}

/* Sidebar dark mode styles */
.dark-mode .sidebar-wrapper {
    background: linear-gradient(135deg, #1e293b 0%, #111827 100%);
    box-shadow: 0 5px 20px rgba(255, 255, 255, 0.05);
}

.dark-mode .sidebar-header {
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.dark-mode .sidebar-title {
    color: var(--header-primary);
}

.dark-mode .nav-menu li {
    background: rgba(0,0,0,0.6);
    border: 1px solid rgba(255,255,255,0.05);
}

.dark-mode .nav-menu li:hover {
    background: rgba(129, 140, 248, 0.1);
}

.dark-mode .nav-menu li.active {
    background: rgba(129, 140, 248, 0.15);
    border-left: 4px solid var(--header-primary);
}

.dark-mode .nav-menu li:focus {
    outline: 2px solid var(--header-primary);
}

.dark-mode .nav-menu li i {
    color: var(--header-primary);
}

.dark-mode .menu-text {
    color: #d1d5db;
}

.dark-mode .menu-toggle-btn {
    background: var(--header-primary);
    color: #fff;
    box-shadow: 0 2px 10px rgba(255,255,255,0.05);
}

/* web_chat.css dark mode styles - variables already in :root above */

/* Specific element styles for dark mode */
.dark-mode .chat-page {
    background-color: rgba(18, 18, 18, 0.95);
    color: var(--dark);
}

.dark-mode .content-wrapper {
    background: #1f2937;
    box-shadow: var(--content-card-shadow);
}

.dark-mode .chat-controls button {
    color: #fff;
}

.dark-mode .chat-controls .menu-toggle-btn {
    background: var(--sidebar-primary);
    color: #fff;
}

.dark-mode .chat-messages {
    scrollbar-color: var(--primary) var(--gray-light);
}

.dark-mode .chat-messages::-webkit-scrollbar-track {
    background: var(--gray-light);
}

.dark-mode .chat-messages::-webkit-scrollbar-thumb {
    background-color: var(--primary);
}

.dark-mode .user-message {
    color: #fff;
}

.dark-mode .ai-message {
    background-color: #1f2937;
    color: var(--dark);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.dark-mode .input-container {
    background-color: #1f2937;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--gray-light);
}

.dark-mode .message-input {
    border: 1px solid var(--gray-light);
    color: var(--dark);
    background-color: #1f2937;
}

.dark-mode .message-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.3);
    background-color: rgba(99, 102, 241, 0.05);
}

.dark-mode .send-button {
    color: #fff;
}

.dark-mode .send-button:disabled {
    background-color: var(--gray);
}

.dark-mode .typing-indicator {
    background-color: #1f2937;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.dark-mode .typing-dot {
    background-color: var(--gray);
}

.dark-mode .code-header {
    background-color: var(--dark);
    color: #fff;
}

.dark-mode .copy-button {
    color: #fff;
}

.dark-mode .mermaid {
    background: #1f2937;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.dark-mode .example-content h6 {
    color: var(--dark);
}

.dark-mode .example-content li {
    color: var(--dark);
}

/* Enhanced starry light dots effect for dark mode */
.dark-mode .chat-container {
    position: relative;
    overflow: hidden;
    background: #000; /* Deep space black */
}

.dark-mode .chat-messages {
    background: transparent !important;
    position: relative;
    z-index: 1;
}

.dark-mode .input-container {
    background: transparent !important;
    z-index: 1;
    /* Do not set position here to preserve .centered or .bottom positioning */
}

/* Preserve message visibility */
.dark-mode .message {
    background: rgba(30, 41, 59, 0.8) !important;
    border-radius: 8px;
    padding: 10px;
    color: #e5e7eb !important;
    position: relative;
    z-index: 1;
}

.dark-mode .message-content {
    color: inherit !important;
}

/* Starry layers */
.dark-mode .chat-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle, rgba(255,255,255,0.9) 2px, transparent 4px),
        radial-gradient(circle, rgba(255,255,255,0.8) 2px, transparent 4px),
        radial-gradient(circle, rgba(255,255,255,0.6) 2px, transparent 4px),
        radial-gradient(circle, rgba(200,255,255,0.5) 3px, transparent 5px);
    background-size: 300px 400px, 450px 350px, 500px 420px, 380px 480px;
    background-position: 23px 97px, 167px 41px, 89px 234px, 251px 136px;
    background-repeat: repeat;
    animation: twinkle 5s ease-in-out infinite, float 90s linear infinite;
    pointer-events: none;
    z-index: 0;
    opacity: 0.35;
}

.dark-mode .chat-container::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle, rgba(255,255,200,0.5) 3px, transparent 5px),
        radial-gradient(circle, rgba(100,200,255,0.4) 3px, transparent 5px),
        radial-gradient(circle, rgba(255,100,200,0.3) 2px, transparent 4px);
    background-size: 600px 550px, 700px 650px, 550px 600px;
    background-position: 112px 189px, 278px 102px, 56px 321px;
    background-repeat: repeat;
    animation: twinkle 7s ease-in-out infinite alternate, float 110s linear infinite reverse;
    pointer-events: none;
    z-index: 0;
    opacity: 0.2;
}

@keyframes twinkle {
    0%, 100% { opacity: 0.2; }
    50% { opacity: 0.5; }
}

@keyframes float {
    0% { transform: translateY(0) translateX(0); }
    100% { transform: translateY(-180%) translateX(-90%); }
}

/* Integrated footer styles for dark mode */
.dark-mode .footer {
    background: linear-gradient(135deg, var(--footer-primary), var(--footer-secondary));
    color: #e5e7eb;
    box-shadow: 0 -4px 12px rgba(255, 255, 255, 0.05);
}

.dark-mode .footer::before {
    background: radial-gradient(circle, rgba(0,0,0,0.15) 0%, transparent 70%);
}

.dark-mode .footer-links a {
    color: #e5e7eb;
    background: rgba(0, 0, 0, 0.2);
}

.dark-mode .footer-links a:hover {
    color: var(--footer-accent);
    background: rgba(0, 0, 0, 0.3);
    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);
}

.dark-mode .footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.dark-mode .footer-bottom p:hover {
    color: var(--footer-accent);
}

.dark-mode .modal-content {
    background: #1e1e1e;
    box-shadow: 0 4px 12px rgba(255, 255, 255, 0.1);
}

.dark-mode .modal-content button {
    background: var(--footer-accent);
}

.dark-mode .modal-content button:hover {
    background: #a855f7;
}

/* 保留媒体查询作为初始回退 */
@media (prefers-color-scheme: dark) {
    :root:not(.light-mode) {
        --header-primary: #818cf8;
        --header-light: #0f172a;
        --header-dark: #f8fafc;
        --body-bg: #1e293b;
        --body-text: #e5e7eb;
        --container-bg: #0f172a;
        --primary: #6366f1;
        --primary-light: #818cf8;
        --primary-dark: #4f46e5;
        --secondary: #4f46e5;
        --accent: #f472b6;
        --light: #1f2937;
        --dark: #d1d5db;
        --gray: #9ca3af;
        --gray-light: #374151;
        --success: #38bdf8;
        --warning: #fbbf24;
        --error: #f87171;
        --sidebar-primary: #6366f1;
        --content-card-shadow: 0 5px 20px rgba(255, 255, 255, 0.05);
        --footer-primary: rgba(55, 65, 81, 0.85);
        --footer-secondary: rgba(75, 85, 99, 0.85);
        --footer-accent: #a855f7;
    }

    /* ... (other header and sidebar media query styles remain the same as previous) ... */

    /* web_chat.css media query styles */
    .chat-page:not(.light-mode .chat-page) {
        background-color: rgba(18, 18, 18, 0.95);
        color: var(--dark);
    }

    /* ... (other specific element styles similar to .dark-mode, using :not(.light-mode ...) ... */

    /* Starry effect with fix */
    .chat-container:not(.light-mode .chat-container) {
        position: relative;
        overflow: hidden;
        background: #000;
    }

    .chat-messages:not(.light-mode .chat-messages) {
        background: transparent !important;
        position: relative;
        z-index: 1;
    }

    .input-container:not(.light-mode .input-container) {
        background: transparent !important;
        z-index: 1;
        /* No position override */
    }

    /* ... (message and starry pseudo elements similar, using :not(.light-mode ...) ... */

    /* Integrated footer styles for media query dark mode */
    .footer:not(.light-mode .footer) {
        background: linear-gradient(135deg, var(--footer-primary), var(--footer-secondary));
        color: #e5e7eb;
        box-shadow: 0 -4px 12px rgba(255, 255, 255, 0.05);
    }

    .footer:not(.light-mode .footer)::before {
        background: radial-gradient(circle, rgba(0,0,0,0.15) 0%, transparent 70%);
    }

    .footer-links:not(.light-mode .footer-links) a {
        color: #e5e7eb;
        background: rgba(0, 0, 0, 0.2);
    }

    .footer-links:not(.light-mode .footer-links) a:hover {
        color: var(--footer-accent);
        background: rgba(0, 0, 0, 0.3);
        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);
    }

    .footer-bottom:not(.light-mode .footer-bottom) {
        border-top: 1px solid rgba(255, 255, 255, 0.15);
    }

    .footer-bottom:not(.light-mode .footer-bottom) p:hover {
        color: var(--footer-accent);
    }

    .modal-content:not(.light-mode .modal-content) {
        background: #1e1e1e;
        box-shadow: 0 4px 12px rgba(255, 255, 255, 0.1);
    }

    .modal-content:not(.light-mode .modal-content) button {
        background: var(--footer-accent);
    }

    .modal-content:not(.light-mode .modal-content) button:hover {
        background: #a855f7;
    }
}

/* Global footer styles (light mode by default) */
:root {
    --footer-primary: rgba(233, 213, 255, 0.85);
    --footer-secondary: rgba(216, 180, 254, 0.85);
    --footer-accent: #8b5cf6;
}

.footer {
    background: linear-gradient(135deg, var(--footer-primary), var(--footer-secondary));
    color: #1f2937;
    padding: 50px 0 30px;
    margin-top: 50px;
    border-radius: 30px 30px 0 0;
    text-align: center;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
    position: relative;
    overflow: hidden;
    backdrop-filter: blur(5px);
}

.footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 70%);
    opacity: 0.4;
    pointer-events: none;
}

.footer-links {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin-bottom: 25px;
    flex-wrap: wrap;
}

.footer-links a {
    color: #1f2937;
    text-decoration: none;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    padding: 10px 15px;
    border-radius: 8px;
    transition: all 0.3s ease;
    background: rgba(255, 255, 255, 0.2);
}

.footer-links a i {
    margin-right: 10px;
    font-size: 1.2rem;
}

.footer-links a:hover {
    color: var(--footer-accent);
    background: rgba(255, 255, 255, 0.3);
    transform: translateY(-3px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.footer-license {
    font-size: 1rem;
    opacity: 0.9;
    margin-bottom: 20px;
    font-weight: 500;
}

.footer-bottom {
    padding-top: 30px;
    border-top: 1px solid rgba(0, 0, 0, 0.15);
    margin-top: 30px;
    font-size: 1rem;
    opacity: 0.9;
    font-weight: 500;
}

.footer-bottom p {
    margin: 0;
    transition: color 0.3s ease;
}

.footer-bottom p:hover {
    color: var(--footer-accent);
}

.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.modal.active {
    display: flex;
}

.modal-content {
    background: white;
    padding: 20px;
    border-radius: 10px;
    text-align: center;
    max-width: 300px;
    width: 90%;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.modal-content img {
    max-width: 100%;
    height: auto;
    margin-bottom: 15px;
}

.modal-content button {
    background: var(--footer-accent);
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    transition: background 0.3s ease;
}

.modal-content button:hover {
    background: #7c3aed;
}

.modal-open {
    overflow: hidden;
}

@media (max-width: 576px) {
    .footer-links {
        gap: 15px;
        flex-direction: column;
        align-items: center;
    }
    .footer-links a {
        font-size: 1rem;
        padding: 8px 12px;
    }
}