/* 使用统一的CSS变量系统 - 移除重复定义，引用css-variables.css */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Arial', sans-serif; /* Use a common sans-serif font */
    margin: 0;
    background-color: var(--color-bg-primary); /* Use existing variable */
    color: var(--color-text-primary); /* Use existing variable */
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.main-header {
    background-color: var(--color-bg-tertiary); /* Darker background for header */
    color: var(--color-primary);
    padding: 20px 40px;
    text-align: center;
    box-shadow: var(--shadow-elevation-2); /* Subtle shadow */
    border-bottom: 1px solid var(--color-border);
}

.main-header h1 {
    margin: 0;
    font-size: var(--font-size-3xl); /* Larger font size for main title */
    font-weight: var(--font-weight-bold);
    letter-spacing: 2px;
    text-transform: uppercase;
}

main {
    flex-grow: 1;
    padding: 20px;
    background-color: var(--color-bg-primary);
}

.container {
    max-width: 1200px; /* Wider container */
    margin: 20px auto; /* Center with some top/bottom margin */
    padding: 30px;
    background-color: var(--color-bg-secondary); /* Lighter background for container */
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-elevation-3); /* More prominent shadow */
    display: flex;
    flex-direction: column;
    gap: 30px; /* Space between sections */
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 1px;
}

h2 {
    margin-bottom: var(--spacing-lg);
    font-size: var(--font-size-h4); /* Adjusted to a smaller heading size */
    border-bottom: none;
    padding-bottom: 8px;
    position: relative;
    line-height: var(--line-height-heading);
}

.minimal-nav .nav-content-wrapper {
    display: flex;
    flex-direction: row; /* Arrange items in a row */
    align-items: center;
    justify-content: flex-start; /* Align content to the start (left) */
    width: 100%;
    height: 100%;
    gap: 10px; /* Space between logo and title area */
}

.minimal-nav .nav-left-section {
    display: flex;
    align-items: center;
    gap: 5px; /* Space between logo and title */
}

.minimal-nav .nav-logo {
    display: flex;
    align-items: center;
    gap: 5px; /* Space between icon and brand text */
    margin-top: 1px; /* Nudge down slightly */
}

.minimal-nav .nav-logo .nav-logo-icon {
    width: 32px; /* Adjust size as needed */
    height: 32px;
    display: block; /* Treat as a block element */
    margin: auto; /* Center vertically and horizontally within its own space */
}

.minimal-nav .nav-logo .nav-brand {
    color: var(--color-primary);
    font-family: var(--app-font-family);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    letter-spacing: 1px;
    line-height: 1; /* Ensure line height doesn't add extra space */
}

.minimal-nav .nav-title-area {
    display: flex;
    flex-direction: row; /* Arrange items in a row */
    align-items: center; /* Vertically center items in the row */
    justify-content: flex-start; /* Align content to the start (left) */
    text-align: left; /* Ensure text is left-aligned */
    gap: 10px; /* Add some space between the title and project name */
}

.minimal-nav .main-app-title {
    font-size: var(--font-size-base); /* Smaller font size for main title */
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary); /* Changed color for better contrast */
    margin-bottom: 0; /* Ensure no bottom margin */
    line-height: 1; /* Ensure line height doesn't add extra space */
    font-family: var(--app-font-family); /* Apply engineering font */
    position: relative; /* Enable positioning */
    top: -1px; /* Nudge up slightly */
}

.minimal-nav .navbar-project-name-display {
    font-size: var(--font-size-sm); /* Smaller font size for project name */
    color: var(--color-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px; /* Reduced max-width */
    line-height: 1; /* Ensure line height doesn't add extra space */
    position: relative; /* Enable positioning */
    top: 1px; /* Nudge down slightly */
}

/* Adjust padding for the main app container to account for the fixed navbar */
.app-container.page-content {
    padding-top: 30px; /* Add padding equal to new navbar height */
}

/* Section Header */
.section-header {
    text-align: center;
    margin-bottom: var(--spacing-xxxxxxl); 
}

.section-title {
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    margin-bottom: var(--spacing-xxxxl); /* Adjust as needed */
    text-shadow: none;
    letter-spacing: 4px;
    line-height: var(--line-height-heading);
    text-transform: uppercase;
}

.section-subtitle {
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    max-width: 650px;
    margin: 0 auto;
    line-height: var(--line-height-normal);
    font-weight: var(--font-weight-normal);
}

/* Buttons */
.btn {
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: 0;
    font-size: var(--font-size-base);
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
    font-weight: var(--font-weight-bold);
    letter-spacing: 1px;
}

.btn-primary {
    background-color: var(--color-black);
    color: var(--color-primary);
    border: none;
}

.btn-primary:hover {
    background-color: var(--color-primary);
    color: var(--color-black);
}

.btn-secondary {
    background-color: transparent;
    color: var(--color-secondary);
    border: none;
}

.btn-secondary:hover {
    background-color: var(--color-secondary);
    color: var(--color-background-dark);
}

/* Responsive Adjustments (Common) */
@media (max-width: 1024px) {
    .minimal-nav > div {
        padding: var(--spacing-md) var(--spacing-xxl);
    }
    .nav-logo span:last-child {
        display: none;
    }
    .nav-logo > div:nth-child(2) {
        display: none;
    }
}

@media (max-width: 768px) {
    .minimal-nav > div {
        padding: var(--spacing-md) var(--spacing-lg) !important;
    }
    .nav-links {
        gap: var(--spacing-lg) !important;
    }
    .nav-links a {
        font-size: var(--font-size-xs) !important;
    }
    .section-title {
        font-size: var(--font-size-4xl);
    }
    .section-subtitle {
        font-size: var(--font-size-base);
    }
}


/* Scrollbar Styles */
/* Moved to common-styles.css */

/* Index Page Specific Styles */
.landing-page {
    padding-top: var(--spacing-sm); /* Further reduced padding to move content up */
}

.hero-section {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: calc(100vh - var(--spacing-xxxl)); /* Adjust for nav height */
    background: var(--color-background-dark);
    position: relative;
    overflow: hidden;
    padding: var(--spacing-xxxl) var(--spacing-xxl);
}

/* Removed .hero-background grid styles as they are not for the main canvas */

/* OPM Canvas Grid - 现在由 opm-elements-styles.css 统一管理 */

/* OPM图元样式已移至 opm-elements-styles.css 统一管理 */



.hero-content {
    display: flex;
    align-items: center;
    gap: var(--spacing-xxxxl); /* 80px */
    max-width: var(--max-width-content-lg);
    width: 100%;
    position: relative;
    z-index: 1;
}

.hero-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.pixel-title {
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    text-shadow: none;
    image-rendering: pixelated;
    margin-bottom: var(--spacing-lg);
}

.logo-section {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* Align to start for better visual */
    margin: -15px 0 var(--spacing-xl) 80px; /* -15px 0 30px 80px */
}

.logo-icon {
    width: 320px;
    height: 24px;
}

.logo-svg {
    width: 320px;
    height: 24px;
}

.hero-description {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xxl); /* 40px */
    line-height: var(--line-height-normal);
}

.cta-section {
    margin-top: var(--spacing-lg);
}

.cta-primary {
    background: linear-gradient(45deg, var(--color-primary), var(--color-accent));
    color: var(--color-black);
    border: none;
    padding: var(--spacing-md) var(--spacing-xl); /* 15px 30px */
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: none;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.cta-primary:hover {
    transform: translateY(-3px);
    box-shadow: none;
}

.cta-arrow {
    font-size: var(--font-size-2xl);
    line-height: var(--line-height-none);
}

.hero-right {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.opd-container {
    background: var(--color-background-darker);
    border: none;
    box-shadow: none;
    padding: var(--spacing-lg);
    border-radius: var(--border-radius);
}

.opd-diagram {
    width: 100%;
    height: auto;
}

/* Design Layers Section */
.design-layers-section {
    padding: var(--spacing-xxxl) var(--spacing-xxl);
    background: var(--color-background-darker);
}

.design-layers-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-xl); /* 30px */
    max-width: var(--max-width-content-md); /* 1000px */
    margin: 0 auto;
}

.layer-card {
    background: var(--color-background-dark);
    border: none;
    padding: var(--spacing-xl); /* 30px */
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: none;
}

.layer-card:hover {
    transform: translateY(-5px);
    box-shadow: none;
}

.layer-number {
    font-size: var(--font-size-5xl);
    color: var(--color-secondary);
    margin-bottom: var(--spacing-md);
}

.layer-title {
    font-size: var(--font-size-2xl);
    color: var(--color-primary);
    margin-bottom: var(--spacing-sm);
}

.layer-description {
    font-size: var(--font-size-base);
    color: var(--color-text-primary);
}

/* Features Section */
.features-section {
    padding: var(--spacing-xxxl) var(--spacing-xxl);
    background: var(--color-background-dark);
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xxxl); /* 60px */
    max-width: var(--max-width-content-md); /* 1000px */
    margin: 0 auto;
}

.feature-card {
    background: var(--color-background-darker);
    border: none;
    padding: var(--spacing-xl); /* 30px */
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: none;
}

.feature-card:hover {
    transform: translateY(-5px);
    box-shadow: none;
}

.feature-icon {
    font-size: var(--font-size-5xl);
    margin-bottom: var(--spacing-md);
}

.feature-title {
    font-size: var(--font-size-2xl);
    color: var(--color-secondary);
    margin-bottom: var(--spacing-sm);
}

.feature-description {
    font-size: var(--font-size-base);
    color: var(--color-text-primary);
}

/* Responsive Adjustments (Index Page) */
@media (max-width: 1024px) {
    .hero-content {
        flex-direction: column;
        text-align: center;
        gap: var(--spacing-xxl);
    }

    .hero-left {
        align-items: center;
    }

    .logo-section {
        margin: var(--spacing-md) 0;
    }

    .design-layers-grid,
    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .hero-section {
        padding: var(--spacing-xxxxl) var(--spacing-lg);
    }

    .pixel-title {
        font-size: 2.5rem;
    }

    .hero-description {
        font-size: 1.2rem;
    }

    .cta-primary {
        font-size: 1rem;
        padding: var(--spacing-sm) var(--spacing-lg);
    }

    .design-layers-grid,
    .features-grid {
        grid-template-columns: 1fr;
    }

    .layer-card,
    .feature-card {
        padding: var(--spacing-lg);
    }

    .section-title {
        font-size: 2rem;
    }

    .section-subtitle {
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .pixel-title {
        font-size: var(--font-size-3xl);
    }

    .hero-description {
        font-size: var(--font-size-base);
    }

    .logo-icon {
            width: 400px;
            height: 54px;
            background: transparent;
            border-radius: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            border: none;
            box-shadow: none;
        }

        .logo-svg {
            width: 400px;
            height: 54px;
        }
}

/* 仿真控制台样式 - 基于OPM规范性检查报告窗口 */
.simulation-console {
    position: fixed;
    /* 将仿真控制台整体向下移动，避免遮挡顶部工具栏 */
    top: 96px;
    right: var(--view-panel-tab-gutter, 0);
    bottom: auto;
    width: 360px;
    height: var(--view-panel-height, min(72vh, calc(100vh - 120px)));
    max-height: var(--view-panel-height, min(72vh, calc(100vh - 120px))); /* Align with other panels */
    z-index: 12000;
    transform: translateX(100%);
    transition: transform 0.3s ease-out;
    background: var(--view-panel-bg, var(--color-bg-tertiary));
    box-shadow: -2px 0 5px rgba(0,0,0,0.1);
    border-radius: 8px 0 0 8px;
    visibility: hidden;
    pointer-events: none;
}

.simulation-console.show {
    transform: translateX(0); /* 显示时移入视图 */
    visibility: visible;
    pointer-events: auto;
}

.simulation-console .console-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: var(--view-panel-header-height, 48px);
    background: var(--view-panel-header-bg, var(--color-bg-tertiary));
    padding: var(--view-panel-header-pad, 12px 16px);
    border-bottom: 1px solid var(--view-panel-header-border, var(--color-border-light));
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 8px 0 0 0;
}

.simulation-console .console-title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
}

.simulation-console .console-title svg {
    color: var(--color-secondary);
}

.simulation-console .console-header > div {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 控制台图标按钮（复制/清空/关闭） */
.simulation-console .console-icon-btn {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    color: var(--color-text-secondary);
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, transform 0.1s ease;
}
.simulation-console .console-icon-btn.pinned {
    background: var(--color-secondary);
    color: #0b1e0f;
}

.simulation-console:not(.show) {
    box-shadow: none;
    border-left-color: transparent;
    transform: translateX(110%);
}
.simulation-console .console-icon-btn:hover {
    background: var(--color-bg-light);
    color: var(--color-text-primary);
}
.simulation-console .console-icon-btn:active {
    transform: scale(0.96);
}
.simulation-console .console-icon-btn svg {
    stroke: currentColor;
}
.simulation-console .console-icon-btn.copied {
    color: var(--color-success);
}

.simulation-console .console-clear {
    background: transparent;
    border: 1px solid var(--color-border-medium);
    color: var(--color-text-secondary);
    font-size: var(--font-size-xs);
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    transition: all 0.2s ease;
}

.simulation-console .console-clear:hover {
    background: var(--color-bg-light);
    color: var(--color-text-primary);
    border-color: var(--color-border-focus);
}

.simulation-console .console-content {
    position: absolute;
    top: 48px;
    bottom: 0;
    left: 0;
    right: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px 16px;
    font-family: var(--app-font-family);
    font-size: var(--font-size-xs);
    line-height: var(--line-height-normal);
    background: var(--color-bg-primary);
}

.simulation-console .console-content::-webkit-scrollbar {
    width: 8px;
    background: var(--color-bg-secondary);
}
.simulation-console .console-content::-webkit-scrollbar-thumb {
    background: var(--color-border-medium);
    border-radius: 4px;
}
.simulation-console .console-content::-webkit-scrollbar-thumb:hover {
    background: var(--color-primary);
}

.console-message {
    margin: 4px 0;
    padding: 4px 8px;
    border-radius: 4px;
    border-left: none;
}

.console-message.info {
    color: #0888c4;
    border-left-color: #6bcfff;
    background: rgba(107, 207, 255, 0.1);
}

.console-message.warn {
    color: #ffd93d;
    border-left-color: #ffd93d;
    background: rgba(255, 217, 61, 0.1);
}

.console-message.error {
    color: #ff6b6b;
    border-left-color: #ff6b6b;
    background: rgba(255, 107, 107, 0.1);
}

.console-message.log {
    color: var(--color-text-primary);
    border-left-color: #555;
}

/* 保留日志中的换行和缩进，便于查看多行输出（如数组、对象等） */
.console-message .console-text {
    white-space: pre-wrap;
}

.console-message.script-start {
    color: #4caf50;
    border-left-color: #4caf50;
    background: rgba(76, 175, 80, 0.1);
    font-weight: var(--font-weight-bold);
}

.console-message.script-complete {
    color: #8bc34a;
    border-left-color: #8bc34a;
    background: rgba(139, 195, 74, 0.1);
}

.console-message.script-error {
    color: #f44336;
    border-left-color: #f44336;
    background: rgba(244, 67, 54, 0.1);
}

.console-timestamp {
    color: var(--color-text-muted);
    font-size: var(--font-size-xs);
    margin-right: 8px;
}

/* 确保所有模态框完美居中显示 */
.modal {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: rgba(0, 0, 0, 0.45);
}

.modal[style*="display: none"] {
    display: none !important;
}

.modal[style*="display: flex"] {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
}
[data-theme="light"] .modal {
    background-color: rgba(0, 0, 0, 0.25);
}
[data-theme="dark"] .modal {
    background-color: rgba(0, 0, 0, 0.55);
}

/* 统一脚本编辑器模态框 */
#script-editor-modal {
    z-index: 16000 !important; /* 确保显示在所有其他模态框之上 */
}

/* 其他重要模态框也设置高z-index */
#note-modal {
    z-index: 15000 !important; /* 确保显示在工具栏之上 */
}

/* 旧的脚本编辑模态框样式已移除，请使用统一脚本编辑器 */

/* 脚本编辑器主题适配 */
#script-editor-modal .modal-content {
    background-color: var(--background-color, var(--color-bg-tertiary)) !important;
}

#process-script-modal .modal-header,
#object-script-modal .modal-header {
    background-color: var(--color-bg-secondary) !important;
    padding: 15px 20px !important;
    border-bottom: 1px solid var(--color-border-medium) !important;
    margin: -30px -30px 20px -30px !important;
    border-radius: var(--border-radius) var(--border-radius) 0 0 !important;
}

#process-script-modal .modal-header h3,
#object-script-modal .modal-header h3 {
    color: var(--color-text-primary) !important;
    margin: 0 !important;
}

#process-script-modal .modal-body,
#object-script-modal .modal-body {
    background-color: var(--color-bg-tertiary) !important;
}

/* Tab面板背景 */
#process-script-modal #script-tab-panel,
#process-script-modal #external-tab-panel,
#object-script-modal #object-script-tab-panel,
#object-script-modal #object-external-tab-panel {
    background-color: var(--color-bg-tertiary) !important;
}

/* 编辑器容器背景 */
#process-script-modal #script-content-editor,
#object-script-modal #object-script-content-editor {
    background-color: var(--color-bg-secondary) !important;
    border: 1px solid var(--color-border-medium) !important;
    border-radius: 4px !important;
}

#process-script-modal .modal-close,
#object-script-modal .modal-close {
    background: none;
    border: none;
    color: var(--color-text-secondary);
    font-size: 24px;
    cursor: pointer;
    position: absolute;
    right: 15px;
    top: 15px;
}

#process-script-modal .modal-close:hover,
#object-script-modal .modal-close:hover {
    color: var(--color-primary);
}

/* Tab按钮样式 */
#process-script-modal .script-tab-btn,
#object-script-modal .script-tab-btn {
    flex: 1;
    padding: 8px;
    background: var(--color-bg-secondary) !important;
    color: var(--color-text-secondary) !important;
    border: none;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.2s ease;
}

#process-script-modal .script-tab-btn.active,
#object-script-modal .script-tab-btn.active {
    background: var(--color-bg-tertiary) !important;
    color: var(--color-secondary) !important;
}

/* 标签样式 */
#process-script-modal label,
#object-script-modal label {
    color: var(--color-text-primary) !important;
}

/* 选择框样式 */
#process-script-modal select,
#object-script-modal select {
    padding: 8px !important;
    border: 1px solid var(--color-border-medium) !important;
    background: var(--color-bg-secondary) !important;
    color: var(--color-text-primary) !important;
    border-radius: 4px !important;
}

/* 文本区域样式 */
#process-script-modal textarea,
#object-script-modal textarea {
    background: var(--color-bg-secondary) !important;
    color: var(--color-text-primary) !important;
    border: 1px solid var(--color-border-medium) !important;
    border-radius: 4px !important;
}

/* 控制台容器样式 */
#process-script-modal .modal-body > div:last-child,
#object-script-modal .modal-body > div:last-child {
    border: 1px solid var(--color-border-medium) !important;
    background: var(--color-bg-secondary) !important;
}

/* 控制台标题 */
#process-script-modal .modal-body > div:last-child > div:first-child,
#object-script-modal .modal-body > div:last-child > div:first-child {
    color: var(--color-text-primary) !important;
}

/* 控制台容器样式 - 覆盖内联样式 */
#process-script-modal div[style*="background: #1a1a1a"],
#object-script-modal div[style*="background: #1a1a1a"] {
    background: var(--color-bg-secondary) !important;
    border: 1px solid var(--color-border-medium) !important;
}

/* 控制台输出区域 */
#script-console,
#object-script-console {
    background: var(--color-bg-dark) !important;
    color: var(--color-text-secondary) !important;
    border-radius: 4px !important;
}

/* 外部函数绑定区域的输入框 */
#process-script-modal input[style*="background: #222"],
#process-script-modal select[style*="background: #222"],
#object-script-modal input[style*="background: #222"],
#object-script-modal select[style*="background: #222"] {
    background: var(--color-bg-secondary) !important;
    color: var(--color-text-primary) !important;
    border: 1px solid var(--color-border-medium) !important;
}

/* 更具体的选择器覆盖硬编码样式 */
#process-script-modal [style*="background: #2a2a2a"],
#object-script-modal [style*="background: #2a2a2a"] {
    background: var(--color-bg-secondary) !important;
}

#process-script-modal [style*="color: #cccccc"],
#object-script-modal [style*="color: #cccccc"] {
    color: var(--color-text-primary) !important;
}

#process-script-modal [style*="color: #888"],
#object-script-modal [style*="color: #888"] {
    color: var(--color-text-secondary) !important;
}

#process-script-modal [style*="background: #0a0a0a"],
#object-script-modal [style*="background: #0a0a0a"] {
    background: var(--color-bg-dark) !important;
}

/* 特殊按钮样式覆盖 */
#process-script-modal [style*="background: #444"],
#object-script-modal [style*="background: #444"] {
    background: var(--color-bg-light) !important;
    color: var(--color-text-primary) !important;
}

#process-script-modal [style*="background: #222"],
#object-script-modal [style*="background: #222"] {
    background: var(--color-bg-secondary) !important;
}

/* Tab按钮特殊处理 */
#process-script-modal .script-tab-btn[style*="background: #222"],
#object-script-modal .script-tab-btn[style*="background: #222"] {
    background: var(--color-bg-secondary) !important;
    color: var(--color-text-secondary) !important;
}

#process-script-modal .script-tab-btn[style*="color: #00ff41"],
#object-script-modal .script-tab-btn[style*="color: #00ff41"] {
    background: var(--color-bg-tertiary) !important;
    color: var(--color-secondary) !important;
}

/* 强制覆盖所有内联样式 - 最高优先级 */
#process-script-modal *[style],
#object-script-modal *[style] {
    background-color: var(--color-bg-tertiary) !important;
    color: var(--color-text-primary) !important;
}

/* 特殊元素例外 */
#process-script-modal #script-console,
#object-script-modal #object-script-console {
    background-color: var(--color-bg-dark) !important;
    color: var(--color-text-secondary) !important;
}

/* 脚本测试结果不应该有背景色 */
#process-script-modal #script-console .script-result,
#object-script-modal #object-script-console .script-result {
    background-color: transparent !important;
    background: transparent !important;
}

#process-script-modal .script-tab-btn.active,
#object-script-modal .script-tab-btn.active {
    background-color: var(--color-bg-light) !important;
    color: var(--color-secondary) !important;
}

/* Ace编辑器容器样式 - 只设置编辑器外框，不影响内容 */
#process-script-modal .ace_editor,
#object-script-modal .ace_editor {
    border: 1px solid var(--color-border-medium) !important;
    border-radius: 4px !important;
    font-family: 'Courier New', monospace !important;
    font-weight: bold !important;
}

/* 输入框和选择框特殊处理 */
#process-script-modal input,
#process-script-modal select,
#process-script-modal textarea,
#object-script-modal input,
#object-script-modal select,
#object-script-modal textarea {
    background-color: var(--color-bg-secondary) !important;
    color: var(--color-text-primary) !important;
    border-color: var(--color-border-medium) !important;
}

/* 主题类样式 */
.light-theme {
    background-color: var(--color-bg-tertiary) !important;
    color: var(--color-text-primary) !important;
    border-color: var(--color-border-medium) !important;
}

.dark-theme {
    background-color: var(--color-bg-tertiary) !important;
    color: var(--color-text-primary) !important;
    border-color: var(--color-border-medium) !important;
}

/* 特殊元素的主题类 */
.light-theme.console-container,
.dark-theme.console-container {
    background-color: var(--color-bg-secondary) !important;
}

.light-theme.console-output,
.dark-theme.console-output {
    background-color: var(--color-bg-dark) !important;
    color: var(--color-text-secondary) !important;
}

/* 强制覆盖控制台输出区域的所有可能样式 */
#script-console,
#object-script-console,
div[id="script-console"],
div[id="object-script-console"] {
    background-color: var(--color-bg-dark) !important;
    background: var(--color-bg-dark) !important;
    color: var(--color-text-secondary) !important;
    border: 1px solid var(--color-border-medium) !important;
}

/* 亮色主题下的控制台特殊处理 */
:root[data-theme="light"] #script-console,
:root[data-theme="light"] #object-script-console,
:root[data-theme="light"] div[id="script-console"],
:root[data-theme="light"] div[id="object-script-console"] {
    background-color: #f8f9fa !important;
    background: #f8f9fa !important;
    color: #495057 !important;
    border: 1px solid #dee2e6 !important;
}

/* 暗色主题下的控制台 */
:root[data-theme="dark"] #script-console,
:root[data-theme="dark"] #object-script-console,
:root[data-theme="dark"] div[id="script-console"],
:root[data-theme="dark"] div[id="object-script-console"] {
    background-color: #1a1a1a !important;
    background: #1a1a1a !important;
    color: #cccccc !important;
    border: 1px solid #444 !important;
}

/* 控制台容器的强制样式 */
#process-script-modal div[style*="background: #1a1a1a"],
#object-script-modal div[style*="background: #1a1a1a"] {
    background-color: var(--color-bg-secondary) !important;
    background: var(--color-bg-secondary) !important;
}

/* 亮色主题下的控制台容器 */
:root[data-theme="light"] #process-script-modal div[style*="background: #1a1a1a"],
:root[data-theme="light"] #object-script-modal div[style*="background: #1a1a1a"] {
    background-color: #f1f3f4 !important;
    background: #f1f3f4 !important;
    color: #333 !important;
    border-color: #dee2e6 !important;
}

/* Tab分隔线 */
#process-script-modal .modal-body > div:first-child,
#object-script-modal .modal-body > div:first-child {
    border-bottom: 1px solid var(--color-border-medium) !important;
}

/* 按钮样式 */
#process-script-modal button,
#object-script-modal button {
    background: var(--color-bg-tertiary);
    color: var(--color-text-primary);
    border: 1px solid var(--color-border-medium);
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
}

#process-script-modal button:hover,
#object-script-modal button:hover {
    background: var(--color-bg-light);
    border-color: var(--color-primary);
}

#process-script-modal button:focus,
#object-script-modal button:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* 脚本编辑器容器 */
#process-script-modal #script-content-editor,
#object-script-modal #object-script-content-editor {
    height: 450px;
    min-height: 300px;
    overflow: auto;
}

/* 鼠标坐标显示 */
#mouse-coords-display {
    position: fixed;
    bottom: 10px;
    right: 10px;
    background-color: transparent;
    color: var(--color-text-secondary);
    font-family: var(--app-font-family);
    font-size: var(--font-size-xs);
    z-index: 10000;
    pointer-events: none; /* 确保它不会干扰鼠标事件 */
    opacity: 0.7;
    /* 添加文字阴影以确保在任何背景下都可读 */
    text-shadow: none;
}

.simulation-console .console-close {
    background: var(--color-bg-tertiary) !important;
    color: var(--color-primary) !important;
    border: none;
    font-size: var(--font-size-xs) !important;
    font-family: var(--app-font-family) !important;
    font-weight: var(--font-weight-bold) !important;
    cursor: pointer !important;
    padding: 6px 12px !important;
    border-radius: 4px !important;
    transition: all 0.2s ease !important;
    min-width: 60px !important;
    margin-left: 4px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    height: 32px !important;
    box-sizing: border-box !important;
    line-height: var(--line-height-tight) !important;
}
.simulation-console .console-close:hover {
    background: var(--color-primary) !important;
    color: var(--color-text-inverse) !important;
    border-color: var(--color-primary) !important;
}

/* ===========================================
   仿真控制台主题适配 - Simulation Console Theme Adaptation
   =========================================== */

/* 亮色主题适配 */
[data-theme="light"] .simulation-console .console-content {
    background: #ffffff;
    border: 1px solid var(--color-border-light);
}

[data-theme="light"] .simulation-console .console-content::-webkit-scrollbar {
    background: #f8f9fa;
}

[data-theme="light"] .simulation-console .console-content::-webkit-scrollbar-thumb {
    background: #ced4da;
}

[data-theme="light"] .simulation-console .console-content::-webkit-scrollbar-thumb:hover {
    background: var(--color-primary);
}

[data-theme="light"] .console-message.log {
    color: #212529;
    border-left-color: #dee2e6;
}

[data-theme="light"] .console-timestamp {
    color: #6c757d;
}

/* 暗色主题适配 */
[data-theme="dark"] .simulation-console .console-content {
    background: var(--color-bg-primary);
    border: 1px solid var(--color-border-light);
}

[data-theme="dark"] .simulation-console .console-content::-webkit-scrollbar {
    background: var(--color-bg-secondary);
}

[data-theme="dark"] .simulation-console .console-content::-webkit-scrollbar-thumb {
    background: var(--color-border-medium);
}

[data-theme="dark"] .simulation-console .console-content::-webkit-scrollbar-thumb:hover {
    background: var(--color-primary);
}

[data-theme="dark"] .console-message.log {
    color: var(--color-text-primary);
    border-left-color: var(--color-border-medium);
}

[data-theme="dark"] .console-timestamp {
    color: var(--color-text-muted);
}

/* 侧边栏样式已迁移到 sidebar.css - Sidebar styles moved to sidebar.css */ved to sidebar.css */

/* Admin Page Specific Styles */
.card-section {
    background-color: var(--color-bg-tertiary); /* Card background */
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-elevation-1);
    padding: 25px;
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--color-border);
}

.card-header h2 {
    margin: 0;
    color: var(--color-primary);
    font-size: var(--font-size-xl);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.add-btn, .save-btn {
    padding: 10px 20px;
    background-color: var(--color-accent); /* Use accent color */
    color: var(--color-text-inverse); /* White text on accent */
    border: none;
    border-radius: var(--border-radius-sm);
    cursor: pointer;
    font-size: var(--font-size-base);
    transition: all 0.3s ease;
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.add-btn:hover, .save-btn:hover {
    background-color: var(--color-accent-dark); /* Darker accent on hover */
    transform: translateY(-2px);
    box-shadow: var(--shadow-elevation-1);
}

.item-list {
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    max-height: 400px;
    overflow-y: auto;
    background-color: var(--color-bg-primary); /* Lighter background for list */
}

.item-list-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    border-bottom: 1px solid var(--color-border-light);
    color: var(--color-text-primary);
    transition: background-color 0.2s ease;
}

.item-list-item:last-child {
    border-bottom: none;
}

.item-list-item:hover {
    background-color: var(--color-bg-hover); /* Subtle hover effect */
}

.item-list-item span {
    flex-grow: 1;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

.item-actions button {
    margin-left: 10px;
    padding: 6px 12px;
    font-size: var(--font-size-sm);
    background-color: var(--color-secondary); /* Use secondary color */
    color: var(--color-text-inverse);
    border: none;
    border-radius: var(--border-radius-sm);
    cursor: pointer;
    transition: all 0.3s ease;
}

.item-actions button:hover {
    background-color: var(--color-secondary-dark);
    transform: translateY(-1px);
}

.item-actions button.delete-btn {
    background-color: var(--color-error); /* Red for delete */
}

.item-actions button.delete-btn:hover {
    background-color: var(--color-error-dark);
}

/* Modal Styles */
.modal {
    display: flex; /* Use flexbox for centering */
    align-items: center;
    justify-content: center;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6); /* Darker overlay */
    /* 移除背景模糊效果，避免内容被模糊处理 */
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.modal.show {
    opacity: 1;
    visibility: visible;
}

.modal-content {
    background-color: var(--color-bg-tertiary);
    padding: 30px;
    border-radius: var(--border-radius);
    width: 90%;
    max-width: 800px; /* Slightly wider modal */
    position: relative;
    box-shadow: var(--shadow-elevation-4); /* More prominent shadow */
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.modal.show .modal-content {
    transform: translateY(0);
}

.close-button {
    color: var(--color-text-secondary);
    position: absolute;
    right: 15px;
    top: 15px;
    font-size: 24px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.2s ease;
}

.close-button:hover,
.close-button:focus {
    color: var(--color-primary);
}

.modal-content h2 {
    color: var(--color-primary);
    margin-bottom: 25px;
    text-align: center;
    font-size: var(--font-size-2xl);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.modal-content form label {
    display: block;
    margin-bottom: 8px;
    color: var(--color-text-primary);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-sm);
}

.modal-content form input[type="text"],
.modal-content form input[type="number"],
.modal-content form textarea,
.modal-content form select {
    width: 100%;
    padding: 12px;
    margin-bottom: 20px;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    background-color: var(--color-bg-primary);
    color: var(--color-text-primary);
    font-size: var(--font-size-base);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.modal-content form input[type="text"]:focus,
.modal-content form input[type="number"]:focus,
.modal-content form textarea:focus,
.modal-content form select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(var(--color-primary-rgb), 0.2);
}

.modal-content form textarea {
    resize: vertical;
    min-height: 100px;
}

.modal-content form button[type="submit"] {
    width: 100%;
    padding: 12px;
    background-color: var(--color-accent);
    color: var(--color-text-inverse);
    border: none;
    border-radius: var(--border-radius-sm);
    cursor: pointer;
    font-size: var(--font-size-lg);
    transition: all 0.3s ease;
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.modal-content form button[type="submit"]:hover {
    background-color: var(--color-accent-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-elevation-1);
}

.parameters-container {
    border: 1px dashed var(--color-border-medium);
    padding: 20px;
    margin-bottom: 20px;
    border-radius: var(--border-radius-sm);
    background-color: var(--color-bg-primary);
}

.parameter-item {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.parameter-item input {
    flex: 1;
    margin-bottom: 0;
}

.parameter-item .remove-param-btn {
    background-color: var(--color-error); /* Red for remove */
    color: var(--color-text-inverse);
    padding: 8px 12px;
    font-size: var(--font-size-sm);
    border-radius: var(--border-radius-sm);
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.parameter-item .remove-param-btn:hover {
    background-color: var(--color-error-dark);
    transform: translateY(-1px);
}

.add-param-btn {
    background-color: var(--color-primary);
    color: var(--color-text-inverse);
    padding: 10px 15px;
    border-radius: var(--border-radius-sm);
    border: none;
    cursor: pointer;
    font-size: var(--font-size-base);
    transition: all 0.3s ease;
    font-weight: var(--font-weight-semibold);
}

.add-param-btn:hover {
    background-color: var(--color-primary-dark);
    transform: translateY(-1px);
}

/* LLM 绑定配置对话框（复用API配置样式，略微定制） */
#llm-binding-modal { z-index: 14000; }
#llm-binding-modal .llm-config-content { max-width: 620px; }
#llm-bool-keywords .llm-bool-inputs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
#llm-binding-modal textarea { min-height: 140px; }

/* MCP 绑定配置对话框 */
#mcp-binding-modal { z-index: 14000; }
#mcp-binding-modal .mcp-config-content { max-width: 640px; }
#mcp-binding-modal textarea { min-height: 120px; font-family: var(--code-font-family); }
.mcp-binding-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }

/* ============================================
   极速模式控件样式
   ============================================ */

.turbo-mode-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 8px;
    padding: 6px;
    background-color: transparent;
    border-radius: var(--border-radius-sm);
    border: none;
    transition: all 0.3s ease;
    min-width: 32px;
    min-height: 32px;
}

/* 需求：鼠标移到极速模式按钮时不触发高亮（无悬停反馈） */
.turbo-mode-control:hover {
    background-color: transparent; /* 不改变背景 */
    transform: none;               /* 不做位移/缩放 */
}

.turbo-mode-checkbox {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.turbo-mode-label {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
    color: #888888;
    transition: color 0.3s ease;
}

.turbo-mode-label svg {
    transition: transform 0.3s ease, color 0.3s ease;
}

/* 移除标签在悬停时的颜色与缩放变化 */
.turbo-mode-label:hover {
    color: inherit;
}

.turbo-mode-label:hover svg {
    transform: none;
}

.turbo-mode-checkbox:checked + .turbo-mode-label {
    color: var(--color-primary);
}

.turbo-mode-checkbox:checked + .turbo-mode-label svg {
    color: var(--color-primary);
    animation: turbo-pulse 1.5s ease-in-out infinite;
}

/* Turbo button pressed visual state (robust against toolbar hover styles) */
#turbo-mode-btn[aria-pressed="true"] .turbo-mode-label {
    color: var(--color-primary) !important;
}
#turbo-mode-btn[aria-pressed="true"] .turbo-mode-label svg {
    color: var(--color-primary) !important;
    animation: turbo-pulse 1.5s ease-in-out infinite;
}
/* 彻底屏蔽工具栏对极速按钮的悬停高亮（不改变颜色、不改变图标） */
.product-page #turbo-mode-btn:hover,
.product-page #turbo-mode-btn:hover .turbo-mode-label,
.product-page #turbo-mode-btn:hover svg {
    color: inherit !important;
    background: transparent !important;
}

/* 按下/选中时仍显示绿色，不受悬停影响 */
.product-page #turbo-mode-btn[aria-pressed="true"] .turbo-mode-label,
.product-page #turbo-mode-btn[aria-pressed="true"] .turbo-mode-label svg {
    color: var(--color-primary) !important;
}

@keyframes turbo-pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.2);
        opacity: 0.8;
    }
}

/* 暗色主题适配 */
[data-theme="dark"] .turbo-mode-control:hover {
    background-color: transparent; /* 暗色主题下也不高亮 */
}

/* 亮色主题适配 */
[data-theme="light"] .turbo-mode-control:hover {
    background-color: transparent; /* 亮色主题下也不高亮 */
}

[data-theme="light"] .turbo-mode-label {
    color: #666666;
}

[data-theme="light"] .turbo-mode-checkbox:checked + .turbo-mode-label {
    color: #00b432;
}

[data-theme="light"] .turbo-mode-checkbox:checked + .turbo-mode-label svg {
    color: #00b432;
}
[data-theme="light"] #llm-binding-modal .modal-header {
    background: var(--color-bg-light);
    border-bottom: 1px solid var(--color-border-light);
    color: var(--color-text-primary);
}
/* LLM 绑定配置对话框（复用API配置样式，略微定制） */
#llm-binding-modal {
    z-index: 14000;
}

#llm-binding-modal .llm-config-content {
    max-width: 620px;
}

#llm-bool-keywords .llm-bool-inputs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
}

#llm-binding-modal textarea {
    min-height: 140px;
}
