/* CSS Variables for Theme System */ :root { /* Dark Theme (Default) */ --bg-primary: linear-gradient(135deg, #2c3e50 0%, #34495e 50%, #1a252f 100%); --bg-secondary: rgba(0, 0, 0, 0.3); --bg-tertiary: rgba(0, 0, 0, 0.2); --bg-hover: rgba(0, 0, 0, 0.15); --bg-overlay: rgba(0, 0, 0, 0.7); --text-primary: #ecf0f1; --text-secondary: rgba(255, 255, 255, 0.8); --text-tertiary: rgba(255, 255, 255, 0.7); --text-muted: rgba(255, 255, 255, 0.6); --border-primary: rgba(255, 255, 255, 0.1); --border-secondary: rgba(255, 255, 255, 0.15); --border-hover: rgba(255, 255, 255, 0.2); --accent-primary: #4ade80; --accent-secondary: #60a5fa; --accent-warning: #fbbf24; --accent-error: #f87171; --accent-success: #4caf50; --shadow-primary: 0 8px 24px rgba(0, 0, 0, 0.4); --shadow-secondary: 0 4px 16px rgba(0, 0, 0, 0.2); --shadow-hover: 0 8px 32px rgba(0, 0, 0, 0.6); --backdrop-blur: blur(10px); } /* Light Theme - Softer and easier on the eyes */ [data-theme="light"] { --bg-primary: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 50%, #cbd5e1 100%); --bg-secondary: rgba(255, 255, 255, 0.9); --bg-tertiary: rgba(255, 255, 255, 0.7); --bg-hover: rgba(255, 255, 255, 0.95); --bg-overlay: rgba(0, 0, 0, 0.4); --text-primary: #1e293b; --text-secondary: #334155; --text-tertiary: #475569; --text-muted: #64748b; --border-primary: rgba(30, 41, 59, 0.15); --border-secondary: rgba(30, 41, 59, 0.2); --border-hover: rgba(30, 41, 59, 0.3); --accent-primary: #059669; --accent-secondary: #2563eb; --accent-warning: #d97706; --accent-error: #dc2626; --accent-success: #16a34a; --shadow-primary: 0 8px 24px rgba(0, 0, 0, 0.08); --shadow-secondary: 0 4px 16px rgba(0, 0, 0, 0.04); --shadow-hover: 0 8px 32px rgba(0, 0, 0, 0.12); --backdrop-blur: blur(8px); } /* Theme transition */ * { transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; } /* Theme Switcher Styles */ .theme-switcher { display: flex; align-items: center; gap: 0.5rem; background: var(--bg-tertiary); border: 1px solid var(--border-primary); border-radius: 12px; padding: 0.5rem; backdrop-filter: var(--backdrop-blur); transition: all 0.3s ease; } .theme-switcher:hover { background: var(--bg-hover); border-color: var(--border-hover); box-shadow: var(--shadow-secondary); } .theme-toggle { background: none; border: none; color: var(--text-secondary); cursor: pointer; padding: 0.5rem; border-radius: 8px; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; position: relative; } .theme-toggle:hover { background: var(--bg-hover); color: var(--text-primary); transform: scale(1.05); } .theme-toggle:active { transform: scale(0.95); } .theme-toggle svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 2; transition: transform 0.3s ease; } .theme-toggle:hover svg { transform: rotate(15deg); } .theme-label { font-size: 0.85rem; color: var(--text-tertiary); font-weight: 500; margin-right: 0.25rem; } /* Mobile responsive theme switcher */ @media (max-width: 768px) { .theme-switcher { padding: 0.4rem; gap: 0.4rem; } .theme-toggle { padding: 0.4rem; } .theme-toggle svg { width: 16px; height: 16px; } .theme-label { font-size: 0.8rem; } } /* Additional light theme improvements for better readability */ [data-theme="light"] { /* Ensure better contrast for specific elements */ --text-primary: #0f172a; --text-secondary: #1e293b; --text-tertiary: #334155; --text-muted: #475569; /* Improve background contrast */ --bg-secondary: rgba(255, 255, 255, 0.95); --bg-tertiary: rgba(255, 255, 255, 0.8); --bg-hover: rgba(248, 250, 252, 0.95); /* Stronger borders for better definition */ --border-primary: rgba(30, 41, 59, 0.2); --border-secondary: rgba(30, 41, 59, 0.25); --border-hover: rgba(30, 41, 59, 0.35); } /* Fix specific text readability issues */ [data-theme="light"] .member-hostname, [data-theme="light"] .member-ip, [data-theme="light"] .latency-label, [data-theme="light"] .latency-value, [data-theme="light"] .primary-node-label, [data-theme="light"] .primary-node-ip, [data-theme="light"] .cluster-status, [data-theme="light"] .nav-tab, [data-theme="light"] .summary-title, [data-theme="light"] .summary-subtitle, [data-theme="light"] .task-name, [data-theme="light"] .detail-label, [data-theme="light"] .detail-value { color: var(--text-primary) !important; } [data-theme="light"] .member-ip, [data-theme="light"] .latency-label, [data-theme="light"] .text-tertiary { color: var(--text-tertiary) !important; } [data-theme="light"] .text-muted, [data-theme="light"] .member-latency { color: var(--text-muted) !important; } /* Ensure proper contrast for status indicators */ [data-theme="light"] .status-online { background: rgba(5, 150, 105, 0.2); color: #059669; border: 1px solid rgba(5, 150, 105, 0.4); } [data-theme="light"] .status-offline { background: rgba(220, 38, 38, 0.2); color: #dc2626; border: 1px solid rgba(220, 38, 38, 0.4); } [data-theme="light"] .status-inactive { background: rgba(217, 119, 6, 0.2); color: #d97706; border: 1px solid rgba(217, 119, 6, 0.4); } /* Improve button and interactive element contrast */ [data-theme="light"] .nav-tab { color: var(--text-secondary); } [data-theme="light"] .nav-tab:hover { color: var(--text-primary); } [data-theme="light"] .nav-tab.active { color: var(--text-primary); } /* Fix cluster status contrast */ [data-theme="light"] .cluster-status { background: linear-gradient(135deg, rgba(5, 150, 105, 0.15) 0%, rgba(5, 150, 105, 0.08) 100%); border: 1px solid rgba(5, 150, 105, 0.25); color: #059669; box-shadow: 0 2px 8px rgba(5, 150, 105, 0.1); } /* Improve form elements contrast */ [data-theme="light"] .param-input, [data-theme="light"] .node-select, [data-theme="light"] .label-select { background: var(--bg-tertiary); border: 1px solid var(--border-secondary); color: var(--text-primary); } [data-theme="light"] .param-input:focus, [data-theme="light"] .node-select:focus, [data-theme="light"] .label-select:focus { border-color: var(--accent-secondary); background: var(--bg-hover); } /* Fix dropdown options */ [data-theme="light"] .param-input option, [data-theme="light"] .node-select option, [data-theme="light"] .label-select option { background: var(--bg-secondary); color: var(--text-primary); } /* Improve tab content readability */ [data-theme="light"] .tab-content { background: var(--bg-tertiary); border: 1px solid var(--border-secondary); } /* Fix capability form text */ [data-theme="light"] .param-name { color: var(--text-tertiary); } [data-theme="light"] .cap-uri { color: var(--text-secondary); } /* Improve error and success message contrast */ [data-theme="light"] .error { background: rgba(220, 38, 38, 0.1); border: 1px solid rgba(220, 38, 38, 0.2); color: #dc2626; } [data-theme="light"] .upload-success { background: rgba(22, 163, 74, 0.1); border: 1px solid rgba(22, 163, 74, 0.2); color: #16a34a; } [data-theme="light"] .upload-error { background: rgba(220, 38, 38, 0.1); border: 1px solid rgba(220, 38, 38, 0.2); color: #dc2626; } /* Member Card Text Improvements */ [data-theme="light"] .member-card { background: var(--bg-secondary); border: 1px solid var(--border-secondary); } [data-theme="light"] .member-card .member-hostname { color: var(--text-primary) !important; font-weight: 600; } [data-theme="light"] .member-card .member-ip { color: var(--text-tertiary) !important; font-weight: 500; } [data-theme="light"] .member-card .latency-label { color: var(--text-tertiary) !important; font-weight: 500; } [data-theme="light"] .member-card .latency-value { color: var(--text-primary) !important; font-weight: 600; background: var(--bg-tertiary); border: 1px solid var(--border-primary); } [data-theme="light"] .member-card .detail-label { color: var(--text-tertiary) !important; font-weight: 500; } [data-theme="light"] .member-card .detail-value { color: var(--text-primary) !important; font-weight: 500; } [data-theme="light"] .member-card .endpoint-item { background: var(--bg-tertiary); border: 1px solid var(--border-primary); color: var(--text-secondary) !important; } [data-theme="light"] .member-card .endpoint-item:hover { background: var(--bg-hover); border-color: var(--border-secondary); } [data-theme="light"] .member-card .loading-details { color: var(--text-tertiary) !important; } /* Tab Text Improvements */ [data-theme="light"] .tab-button { color: var(--text-secondary) !important; background: transparent; border: 1px solid transparent; } [data-theme="light"] .tab-button:hover { color: var(--text-primary) !important; background: var(--bg-hover); border-color: var(--border-primary); } [data-theme="light"] .tab-button.active { color: var(--text-primary) !important; background: var(--bg-tertiary); border-color: var(--border-secondary); } [data-theme="light"] .tab-content { background: var(--bg-tertiary); border: 1px solid var(--border-secondary); color: var(--text-primary) !important; } [data-theme="light"] .tab-content p, [data-theme="light"] .tab-content h1, [data-theme="light"] .tab-content h2, [data-theme="light"] .tab-content h3, [data-theme="light"] .tab-content h4, [data-theme="light"] .tab-content h5, [data-theme="light"] .tab-content h6 { color: var(--text-primary) !important; } [data-theme="light"] .tab-content .task-name { color: var(--text-primary) !important; font-weight: 600; } [data-theme="light"] .tab-content .task-status { color: var(--text-primary) !important; font-weight: 500; } [data-theme="light"] .tab-content .task-interval, [data-theme="light"] .tab-content .task-enabled { background: var(--bg-secondary); border: 1px solid var(--border-primary); color: var(--text-secondary) !important; } /* Tabs Container Improvements */ [data-theme="light"] .tabs-container { background: var(--bg-tertiary); border: 1px solid var(--border-secondary); } [data-theme="light"] .tabs-header { background: var(--bg-secondary); border: 1px solid var(--border-secondary); } /* Capability Text Improvements */ [data-theme="light"] .capability-item { background: var(--bg-secondary); border: 1px solid var(--border-secondary); } [data-theme="light"] .capability-item .cap-method { background: var(--bg-tertiary); border: 1px solid var(--border-primary); color: var(--text-primary) !important; } [data-theme="light"] .capability-item .cap-uri { color: var(--text-secondary) !important; } [data-theme="light"] .capability-item .param-name { color: var(--text-tertiary) !important; } [data-theme="light"] .capability-item .param-input { background: var(--bg-tertiary); border: 1px solid var(--border-primary); color: var(--text-primary) !important; } [data-theme="light"] .capability-item .capability-result { background: var(--bg-tertiary); border: 1px solid var(--border-primary); } [data-theme="light"] .capability-item .cap-call-success { background: rgba(22, 163, 74, 0.1); border: 1px solid rgba(22, 163, 74, 0.2); color: #16a34a !important; } [data-theme="light"] .capability-item .cap-call-error { background: rgba(220, 38, 38, 0.1); border: 1px solid rgba(220, 38, 38, 0.2); color: #dc2626 !important; } [data-theme="light"] .capability-item .cap-result-pre { background: var(--bg-secondary); border: 1px solid var(--border-primary); color: var(--text-primary) !important; } /* Label Chips Improvements */ [data-theme="light"] .label-chip { background: rgba(37, 99, 235, 0.1); border: 1px solid rgba(37, 99, 235, 0.3); color: #2563eb !important; } [data-theme="light"] .label-chip.removable { background: rgba(37, 99, 235, 0.15); border: 1px solid rgba(37, 99, 235, 0.4); } [data-theme="light"] .label-chip .chip-remove { color: var(--text-primary) !important; } [data-theme="light"] .label-chip .chip-remove:hover { background: rgba(37, 99, 235, 0.2); } /* Dark theme improvements for better contrast */ [data-theme="dark"] .member-card .member-hostname { color: #ffffff !important; } [data-theme="dark"] .member-card .member-ip { color: rgba(255, 255, 255, 0.8) !important; } [data-theme="dark"] .member-card .latency-label { color: rgba(255, 255, 255, 0.7) !important; } [data-theme="dark"] .member-card .latency-value { color: #ecf0f1 !important; } [data-theme="dark"] .tab-button { color: rgba(255, 255, 255, 0.8) !important; } [data-theme="dark"] .tab-button:hover { color: rgba(255, 255, 255, 0.95) !important; } [data-theme="dark"] .tab-button.active { color: #ffffff !important; } [data-theme="dark"] .tab-content { color: #ecf0f1 !important; } [data-theme="dark"] .tab-content p, [data-theme="dark"] .tab-content h1, [data-theme="dark"] .tab-content h2, [data-theme="dark"] .tab-content h3, [data-theme="dark"] .tab-content h4, [data-theme="dark"] .tab-content h5, [data-theme="dark"] .tab-content h6 { color: #ecf0f1 !important; } /* Fix hover effects that make text disappear */ [data-theme="light"] .member-card:hover .member-hostname, [data-theme="light"] .member-card:hover .member-ip, [data-theme="light"] .member-card:hover .latency-label, [data-theme="light"] .member-card:hover .latency-value, [data-theme="light"] .member-card:hover .detail-label, [data-theme="light"] .member-card:hover .detail-value { color: var(--text-primary) !important; } [data-theme="light"] .member-card:hover .endpoint-item { color: var(--text-secondary) !important; } [data-theme="light"] .member-card:hover .loading-details { color: var(--text-tertiary) !important; } /* Fix tab hover effects */ [data-theme="light"] .tab-button:hover { color: var(--text-primary) !important; } [data-theme="light"] .tab-content:hover p, [data-theme="light"] .tab-content:hover h1, [data-theme="light"] .tab-content:hover h2, [data-theme="light"] .tab-content:hover h3, [data-theme="light"] .tab-content:hover h4, [data-theme="light"] .tab-content:hover h5, [data-theme="light"] .tab-content:hover h6 { color: var(--text-primary) !important; } [data-theme="light"] .tab-content:hover .task-name, [data-theme="light"] .tab-content:hover .task-status { color: var(--text-primary) !important; } [data-theme="light"] .tab-content:hover .task-interval, [data-theme="light"] .tab-content:hover .task-enabled { color: var(--text-secondary) !important; } /* Fix capability hover effects */ [data-theme="light"] .capability-item:hover .cap-method, [data-theme="light"] .capability-item:hover .cap-uri, [data-theme="light"] .capability-item:hover .param-name { color: var(--text-primary) !important; } [data-theme="light"] .capability-item:hover .param-input { color: var(--text-primary) !important; } [data-theme="light"] .capability-item:hover .capability-result { color: var(--text-primary) !important; } [data-theme="light"] .capability-item:hover .cap-call-success { color: #16a34a !important; } [data-theme="light"] .capability-item:hover .cap-call-error { color: #dc2626 !important; } [data-theme="light"] .capability-item:hover .cap-result-pre { color: var(--text-primary) !important; } /* Fix label chip hover effects */ [data-theme="light"] .label-chip:hover { color: #2563eb !important; } [data-theme="light"] .label-chip:hover .chip-remove { color: var(--text-primary) !important; } /* Fix navigation hover effects */ [data-theme="light"] .nav-tab:hover { color: var(--text-primary) !important; } [data-theme="light"] .nav-tab.active:hover { color: var(--text-primary) !important; } /* Fix primary node info hover effects */ [data-theme="light"] .primary-node-info:hover .primary-node-label, [data-theme="light"] .primary-node-info:hover .primary-node-ip { color: var(--text-primary) !important; } /* Fix cluster status hover effects */ [data-theme="light"] .cluster-status:hover { color: #059669 !important; } /* Fix refresh button hover effects */ [data-theme="light"] .refresh-btn:hover { color: var(--text-primary) !important; } [data-theme="light"] .upload-btn:hover, [data-theme="light"] .upload-btn-compact:hover, [data-theme="light"] .deploy-btn:hover { color: var(--text-primary) !important; } /* Fix summary hover effects */ [data-theme="light"] .tasks-summary:hover .summary-title, [data-theme="light"] .tasks-summary:hover .summary-subtitle { color: var(--text-primary) !important; } [data-theme="light"] .summary-stat:hover .summary-stat-value, [data-theme="light"] .summary-stat:hover .summary-stat-label { color: var(--text-primary) !important; } /* Fix progress and result item hover effects */ [data-theme="light"] .progress-item:hover .node-name, [data-theme="light"] .progress-item:hover .node-ip, [data-theme="light"] .progress-item:hover .progress-time, [data-theme="light"] .result-item:hover .node-name, [data-theme="light"] .result-item:hover .node-ip, [data-theme="light"] .result-item:hover .result-details { color: var(--text-primary) !important; } [data-theme="light"] .progress-item:hover .progress-status, [data-theme="light"] .result-item:hover .result-status { color: var(--text-primary) !important; } /* Fix form element hover effects */ [data-theme="light"] .param-input:hover, [data-theme="light"] .node-select:hover, [data-theme="light"] .label-select:hover { color: var(--text-primary) !important; } [data-theme="light"] .file-info:hover { color: var(--text-primary) !important; } /* Fix action button hover effects */ [data-theme="light"] .clear-btn:hover, [data-theme="light"] .refresh-btn:hover, [data-theme="light"] .progress-refresh-btn:hover { color: var(--text-primary) !important; } /* Dark theme hover fixes */ [data-theme="dark"] .member-card:hover .member-hostname, [data-theme="dark"] .member-card:hover .member-ip, [data-theme="dark"] .member-card:hover .latency-label, [data-theme="dark"] .member-card:hover .latency-value { color: #ffffff !important; } [data-theme="dark"] .tab-button:hover { color: rgba(255, 255, 255, 0.95) !important; } [data-theme="dark"] .tab-content:hover p, [data-theme="dark"] .tab-content:hover h1, [data-theme="dark"] .tab-content:hover h2, [data-theme="dark"] .tab-content:hover h3, [data-theme="dark"] .tab-content:hover h4, [data-theme="dark"] .tab-content:hover h5, [data-theme="dark"] .tab-content:hover h6 { color: #ecf0f1 !important; } [data-theme="dark"] .nav-tab:hover { color: rgba(255, 255, 255, 0.95) !important; } [data-theme="dark"] .refresh-btn:hover, [data-theme="dark"] .upload-btn:hover, [data-theme="dark"] .deploy-btn:hover { color: #ffffff !important; } /* Fix problematic hover overlays that make text disappear */ [data-theme="light"] .member-card::before { background: rgba(255, 255, 255, 0.05) !important; } [data-theme="light"] .member-card:hover::before { background: rgba(255, 255, 255, 0.08) !important; } [data-theme="dark"] .member-card::before { background: rgba(0, 0, 0, 0.1) !important; } [data-theme="dark"] .member-card:hover::before { background: rgba(0, 0, 0, 0.15) !important; } /* Fix progress and result item hover overlays */ [data-theme="light"] .progress-item::before, [data-theme="light"] .result-item::before { background: rgba(255, 255, 255, 0.05) !important; } [data-theme="light"] .progress-item:hover::before, [data-theme="light"] .result-item:hover::before { background: rgba(255, 255, 255, 0.08) !important; } [data-theme="dark"] .progress-item::before, [data-theme="dark"] .result-item::before { background: rgba(0, 0, 0, 0.1) !important; } [data-theme="dark"] .progress-item:hover::before, [data-theme="dark"] .result-item:hover::before { background: rgba(0, 0, 0, 0.15) !important; } /* Ensure text is always visible on hover by using higher z-index */ [data-theme="light"] .member-card:hover .member-hostname, [data-theme="light"] .member-card:hover .member-ip, [data-theme="light"] .member-card:hover .latency-label, [data-theme="light"] .member-card:hover .latency-value, [data-theme="light"] .member-card:hover .detail-label, [data-theme="light"] .member-card:hover .detail-value { position: relative; z-index: 10; color: var(--text-primary) !important; } [data-theme="dark"] .member-card:hover .member-hostname, [data-theme="dark"] .member-card:hover .member-ip, [data-theme="dark"] .member-card:hover .latency-label, [data-theme="dark"] .member-card:hover .latency-value { position: relative; z-index: 10; color: #ffffff !important; } /* Fix nav tab hover overlay */ [data-theme="light"] .nav-tab::before { background: rgba(255, 255, 255, 0.05) !important; } [data-theme="light"] .nav-tab:hover::before { background: rgba(255, 255, 255, 0.08) !important; } [data-theme="dark"] .nav-tab::before { background: rgba(255, 255, 255, 0.05) !important; } [data-theme="dark"] .nav-tab:hover::before { background: rgba(255, 255, 255, 0.08) !important; } /* Ensure nav tab text is always visible */ [data-theme="light"] .nav-tab:hover { position: relative; z-index: 10; color: var(--text-primary) !important; } [data-theme="dark"] .nav-tab:hover { position: relative; z-index: 10; color: rgba(255, 255, 255, 0.95) !important; } /* Fix any other problematic hover overlays */ [data-theme="light"] .tasks-summary::before { background: rgba(255, 255, 255, 0.02) !important; } [data-theme="light"] .tasks-summary:hover::before { background: rgba(255, 255, 255, 0.05) !important; } [data-theme="dark"] .tasks-summary::before { background: rgba(255, 255, 255, 0.02) !important; } [data-theme="dark"] .tasks-summary:hover::before { background: rgba(255, 255, 255, 0.05) !important; } /* Ensure summary text is always visible */ [data-theme="light"] .tasks-summary:hover .summary-title, [data-theme="light"] .tasks-summary:hover .summary-subtitle { position: relative; z-index: 10; color: var(--text-primary) !important; } [data-theme="dark"] .tasks-summary:hover .summary-title, [data-theme="dark"] .tasks-summary:hover .summary-subtitle { position: relative; z-index: 10; color: #ecf0f1 !important; } /* Additional fixes for text visibility on hover */ [data-theme="light"] .progress-item:hover .progress-node-info, [data-theme="light"] .progress-item:hover .progress-status, [data-theme="light"] .progress-item:hover .progress-time, [data-theme="light"] .result-item:hover .result-node-info, [data-theme="light"] .result-item:hover .result-status, [data-theme="light"] .result-item:hover .result-details { position: relative; z-index: 10; } [data-theme="dark"] .progress-item:hover .progress-node-info, [data-theme="dark"] .progress-item:hover .progress-status, [data-theme="dark"] .progress-item:hover .progress-time, [data-theme="dark"] .result-item:hover .result-node-info, [data-theme="dark"] .result-item:hover .result-status, [data-theme="dark"] .result-item:hover .result-details { position: relative; z-index: 10; } /* Fix any remaining text visibility issues */ [data-theme="light"] *:hover { /* Ensure all text elements maintain visibility on hover */ } [data-theme="light"] .member-card:hover .member-info, [data-theme="light"] .member-card:hover .member-header, [data-theme="light"] .member-card:hover .member-row-1, [data-theme="light"] .member-card:hover .member-row-2 { position: relative; z-index: 10; } [data-theme="dark"] .member-card:hover .member-info, [data-theme="dark"] .member-card:hover .member-header, [data-theme="dark"] .member-card:hover .member-row-1, [data-theme="dark"] .member-card:hover .member-row-2 { position: relative; z-index: 10; } /* Fix tab content text visibility */ [data-theme="light"] .tab-content:hover .task-item, [data-theme="light"] .tab-content:hover .capability-item { position: relative; z-index: 10; } [data-theme="dark"] .tab-content:hover .task-item, [data-theme="dark"] .tab-content:hover .capability-item { position: relative; z-index: 10; } /* Member Overlay Header Theme Fixes */ [data-theme="light"] .member-overlay-content { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 50%, #e2e8f0 100%); border: 1px solid var(--border-secondary); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15); } [data-theme="light"] .member-overlay-header { border-bottom: 1px solid var(--border-secondary); } [data-theme="light"] .member-overlay-header .member-info .member-hostname { color: var(--text-primary) !important; font-weight: 600; } [data-theme="light"] .member-overlay-header .member-info .member-ip { color: var(--text-tertiary) !important; font-weight: 500; } [data-theme="light"] .member-overlay-header .member-info .member-latency { color: var(--text-muted) !important; } [data-theme="light"] .member-overlay-header .member-info .member-status { color: var(--text-primary) !important; } [data-theme="light"] .member-overlay-header .member-info .member-labels .label-chip { background: rgba(37, 99, 235, 0.1); border: 1px solid rgba(37, 99, 235, 0.3); color: #2563eb !important; } [data-theme="light"] .member-overlay-subtitle { color: var(--text-tertiary) !important; } [data-theme="light"] .member-overlay-close { color: var(--text-tertiary) !important; } [data-theme="light"] .member-overlay-close:hover { background: var(--bg-hover); color: var(--text-primary) !important; } /* Member Overlay Body Theme Fixes */ [data-theme="light"] .member-overlay-body .member-card { background: transparent; border: none; box-shadow: none; } [data-theme="light"] .member-overlay-body .member-card .member-header { background: var(--bg-secondary); border: 1px solid var(--border-primary); border-radius: 8px; padding: 1rem; margin-bottom: 1rem; } [data-theme="light"] .member-overlay-body .member-card .member-details { background: var(--bg-tertiary); border: 1px solid var(--border-primary); border-radius: 8px; padding: 1rem; } [data-theme="light"] .member-overlay-body .detail-section-title { color: var(--text-secondary) !important; font-weight: 600; } [data-theme="light"] .member-overlay-body .detail-row .detail-label { color: var(--text-tertiary) !important; font-weight: 500; } [data-theme="light"] .member-overlay-body .detail-row .detail-value { color: var(--text-primary) !important; font-weight: 500; } [data-theme="light"] .member-overlay-body .resources-title, [data-theme="light"] .member-overlay-body .api-title { color: var(--text-tertiary) !important; font-weight: 500; } [data-theme="light"] .member-overlay-body .resource-chip { background: rgba(37, 99, 235, 0.1); color: #2563eb !important; border: 1px solid rgba(37, 99, 235, 0.3); } [data-theme="light"] .member-overlay-body .api-chip { background: rgba(16, 185, 129, 0.1); color: #10b981 !important; border: 1px solid rgba(16, 185, 129, 0.3); } /* Dark theme overlay improvements */ [data-theme="dark"] .member-overlay-content { background: linear-gradient(135deg, #1c2a38 0%, #283746 50%, #1a252f 100%); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6); } [data-theme="dark"] .member-overlay-header { border-bottom: 1px solid rgba(255, 255, 255, 0.1); } [data-theme="dark"] .member-overlay-header .member-info .member-hostname { color: #ffffff !important; font-weight: 600; } [data-theme="dark"] .member-overlay-header .member-info .member-ip { color: rgba(255, 255, 255, 0.8) !important; font-weight: 500; } [data-theme="dark"] .member-overlay-header .member-info .member-latency { color: rgba(255, 255, 255, 0.7) !important; } [data-theme="dark"] .member-overlay-header .member-info .member-status { color: #ecf0f1 !important; } [data-theme="dark"] .member-overlay-header .member-info .member-labels .label-chip { background: rgba(30, 58, 138, 0.35); border: 1px solid rgba(59, 130, 246, 0.4); color: #dbeafe !important; } [data-theme="dark"] .member-overlay-subtitle { color: rgba(255, 255, 255, 0.7) !important; } [data-theme="dark"] .member-overlay-close { color: rgba(255, 255, 255, 0.6) !important; } [data-theme="dark"] .member-overlay-close:hover { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.9) !important; } [data-theme="dark"] .member-overlay-body .member-card .member-header { background: rgba(0, 0, 0, 0.2); border: 1px solid rgba(255, 255, 255, 0.1); } [data-theme="dark"] .member-overlay-body .member-card .member-details { background: rgba(0, 0, 0, 0.15); border: 1px solid rgba(255, 255, 255, 0.08); } [data-theme="dark"] .member-overlay-body .detail-section-title { color: rgba(255, 255, 255, 0.8) !important; font-weight: 600; } [data-theme="dark"] .member-overlay-body .detail-row .detail-label { color: rgba(255, 255, 255, 0.7) !important; font-weight: 500; } [data-theme="dark"] .member-overlay-body .detail-row .detail-value { color: #ecf0f1 !important; font-weight: 500; } [data-theme="dark"] .member-overlay-body .resources-title, [data-theme="dark"] .member-overlay-body .api-title { color: rgba(255, 255, 255, 0.7) !important; font-weight: 500; } [data-theme="dark"] .member-overlay-body .resource-chip { background: rgba(30, 58, 138, 0.35); color: #dbeafe !important; border: 1px solid rgba(59, 130, 246, 0.4); } [data-theme="dark"] .member-overlay-body .api-chip { background: rgba(16, 185, 129, 0.2); color: #10b981 !important; border: 1px solid rgba(16, 185, 129, 0.3); } /* Mobile responsive overlay fixes */ @media (max-width: 768px) { [data-theme="light"] .member-overlay-content { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); } [data-theme="dark"] .member-overlay-content { background: linear-gradient(135deg, #1c2a38 0%, #283746 100%); } } @media (max-width: 480px) { [data-theme="light"] .member-overlay-header .member-info .member-hostname { font-size: 1.2rem; } [data-theme="light"] .member-overlay-header .member-info .member-ip { font-size: 0.9rem; } [data-theme="dark"] .member-overlay-header .member-info .member-hostname { font-size: 1.2rem; } [data-theme="dark"] .member-overlay-header .member-info .member-ip { font-size: 0.9rem; } }