/* Global dark theme with configurable bottom margin */ :root { --main-content-bottom-margin: 10px; /* Configurable bottom margin for main content */ } .gradio-container { background-color: #000000 !important; color: white !important; height: 100vh !important; max-height: 100vh !important; overflow: hidden !important; } /* Remove borders from all components */ .gr-box, .gr-form, .gr-panel { border: none !important; background-color: #000000 !important; } /* Simplified sidebar styling */ .sidebar { background: linear-gradient(145deg, #111111, #1a1a1a) !important; border: none !important; padding: 15px !important; margin: 0 !important; height: 100vh !important; position: fixed !important; left: 0 !important; top: 0 !important; width: 300px !important; box-sizing: border-box !important; overflow-y: auto !important; overflow-x: hidden !important; } /* Target the actual Gradio column containing sidebar */ div[data-testid="column"]:has(.sidebar) { height: 100vh !important; overflow-y: auto !important; overflow-x: hidden !important; } /* Individual sidebar elements */ .sidebar-title { margin-bottom: 10px !important; } .sidebar-description { margin-bottom: 15px !important; } /* Summary button styling - distinct from model buttons */ .summary-button { background: linear-gradient(135deg, #4a4a4a, #3e3e3e) !important; color: white !important; border: 2px solid #555555 !important; margin: 0 0 15px 0 !important; border-radius: 5px !important; padding: 12px 10px !important; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important; position: relative !important; overflow: hidden !important; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important; font-weight: 600 !important; font-size: 14px !important; text-transform: uppercase !important; letter-spacing: 0.3px !important; font-family: monospace !important; height: 60px !important; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: center !important; line-height: 1.2 !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } .model-header { margin-bottom: 10px !important; background: linear-gradient(135deg, #2a2a2a, #1e1e1e) !important; color: white !important; border: 1px solid #333 !important; border-radius: 5px !important; font-weight: 600 !important; font-size: 14px !important; font-family: monospace !important; text-align: left !important; width: 100% !important; } .model-header:hover { background: linear-gradient(135deg, #3a3a3a, #2e2e2e) !important; } .sidebar-links { margin-top: 15px !important; } /* Hide scrollbar for model container */ .model-container::-webkit-scrollbar { display: none !important; } /* Ensure all sidebar content fits within width */ .sidebar * { max-width: 100% !important; word-wrap: break-word !important; overflow-wrap: break-word !important; } /* Specific control for markdown content */ .sidebar .markdown, .sidebar h1, .sidebar h2, .sidebar h3, .sidebar p { max-width: 100% !important; word-wrap: break-word !important; overflow: hidden !important; } /* Sidebar scrollbar styling */ .sidebar::-webkit-scrollbar { width: 8px !important; background: #111111 !important; } .sidebar::-webkit-scrollbar-track { background: #111111 !important; } .sidebar::-webkit-scrollbar-thumb { background-color: #333333 !important; border-radius: 4px !important; } .sidebar::-webkit-scrollbar-thumb:hover { background-color: #555555 !important; } /* Force button containers to single column in model list */ .model-list .gr-button, .model-list button { display: block !important; width: 100% !important; max-width: 100% !important; margin: 4px 0 !important; flex: none !important; } /* Simple unfolding menu with invisible scrollbar */ .model-list-visible { max-height: 200px !important; overflow-y: auto !important; transition: max-height 0.3s ease !important; scrollbar-width: none !important; -ms-overflow-style: none !important; } .model-list-visible::-webkit-scrollbar { width: 0px !important; background: transparent !important; } .model-list-hidden { max-height: 0 !important; overflow: hidden !important; transition: max-height 0.3s ease !important; } /* Model button styling */ .model-button { background: linear-gradient(135deg, #2a2a2a, #1e1e1e) !important; color: white !important; margin: 3px 0 !important; padding: 8px 12px !important; font-weight: 600 !important; font-size: 14px !important; text-transform: uppercase !important; letter-spacing: 0.3px !important; font-family: monospace !important; width: 100% !important; max-width: 100% !important; white-space: nowrap !important; text-overflow: ellipsis !important; display: block !important; cursor: pointer !important; transition: all 0.3s ease !important; border: 1px solid #333 !important; border-radius: 5px !important; } .model-button:hover { background: linear-gradient(135deg, #3a3a3a, #2e2e2e) !important; border-color: #74b9ff !important; color: #74b9ff !important; transform: translateY(-1px) !important; box-shadow: 0 2px 8px rgba(116, 185, 255, 0.2) !important; } /* Model buttons with failures - fuzzy red border with inner glow */ .model-button-failed { border: 1px solid #712626 !important; box-shadow: inset 0 0 8px rgba(204, 68, 68, 0.4) !important; } .model-button-failed:hover { border-color: #712626 !important; box-shadow: 0 0 12px rgba(255, 107, 107, 0.5) !important; } /* .model-button:active { background: linear-gradient(135deg, #2a2a2a, #1e1e1e) !important; color: #5a9bd4 !important; } */ /* Model stats badge */ .model-stats { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-top: 8px !important; font-size: 12px !important; opacity: 0.8 !important; } .stats-badge { background: rgba(116, 185, 255, 0.2) !important; padding: 4px 8px !important; border-radius: 10px !important; font-weight: 500 !important; font-size: 11px !important; color: #74b9ff !important; } .success-indicator { width: 8px !important; height: 8px !important; border-radius: 50% !important; display: inline-block !important; margin-right: 6px !important; } .success-high { background-color: #4CAF50 !important; } .success-medium { background-color: #FF9800 !important; } .success-low { background-color: #F44336 !important; } /* Refresh button styling */ .refresh-button { background: linear-gradient(135deg, #2d5aa0, #1e3f73) !important; color: white !important; border: 1px solid #3a6bc7 !important; margin: 0 0 10px 0 !important; border-radius: 5px !important; padding: 6px 8px !important; transition: all 0.3s ease !important; font-weight: 500 !important; font-size: 11px !important; text-transform: lowercase !important; letter-spacing: 0.1px !important; font-family: monospace !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; } .refresh-button:hover { background: linear-gradient(135deg, #3a6bc7, #2d5aa0) !important; border-color: #4a7bd9 !important; } /* Summary button styling - distinct from model buttons */ .summary-button { background: linear-gradient(135deg, #4a4a4a, #3e3e3e) !important; color: white !important; border: 2px solid #555555 !important; margin: 0 0 15px 0 !important; border-radius: 5px !important; padding: 12px 10px !important; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important; position: relative !important; overflow: hidden !important; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important; font-weight: 600 !important; font-size: 14px !important; text-transform: uppercase !important; letter-spacing: 0.3px !important; font-family: monospace !important; height: 60px !important; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: center !important; line-height: 1.2 !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; } /* Simplified Gradio layout control */ .sidebar .gr-column, .sidebar .gradio-column { width: 100% !important; } /* Simplified Gradio targeting */ div[data-testid="column"]:has(.sidebar) { width: 300px !important; min-width: 300px !important; } /* Button container with fixed height - DISABLED */ /* .button-container { height: 50vh !important; max-height: 50vh !important; overflow-y: auto !important; overflow-x: hidden !important; scrollbar-width: thin !important; scrollbar-color: #333333 #111111 !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; padding: 5px 0 !important; margin-top: 10px !important; } */ /* Removed simple scroll CSS - was hiding buttons */ .summary-button:hover { background: linear-gradient(135deg, #5a5a5a, #4e4e4e) !important; color: #74b9ff !important; border-color: #666666 !important; } .summary-button:active { background: linear-gradient(135deg, #4a4a4a, #3e3e3e) !important; color: #5a9bd4 !important; } /* Regular button styling for non-model buttons */ .gr-button:not(.model-button):not(.summary-button) { background-color: #222222 !important; color: white !important; border: 1px solid #444444 !important; margin: 5px 0 !important; border-radius: 8px !important; transition: all 0.3s ease !important; } .gr-button:not(.model-button):not(.summary-button):hover { background-color: #333333 !important; border-color: #666666 !important; } /* Plot container with smooth transitions and controlled scrolling */ .plot-container { background-color: #000000 !important; border: none !important; transition: opacity 0.6s ease-in-out !important; flex: 1 1 auto !important; min-height: 0 !important; overflow-y: auto !important; scrollbar-width: thin !important; scrollbar-color: #333333 #000000 !important; } /* Custom scrollbar for plot container */ .plot-container::-webkit-scrollbar { width: 8px !important; background: #000000 !important; } .plot-container::-webkit-scrollbar-track { background: #000000 !important; } .plot-container::-webkit-scrollbar-thumb { background-color: #333333 !important; border-radius: 4px !important; } .plot-container::-webkit-scrollbar-thumb:hover { background-color: #555555 !important; } /* Gradio plot component styling */ .gr-plot { background-color: #000000 !important; transition: opacity 0.6s ease-in-out !important; } .gr-plot .gradio-plot { background-color: #000000 !important; transition: opacity 0.6s ease-in-out !important; } .gr-plot img { transition: opacity 0.6s ease-in-out !important; } /* Target the plot wrapper */ div[data-testid="plot"] { background-color: #000000 !important; } /* Target all possible plot containers */ .plot-container img, .gr-plot img, .gradio-plot img { background-color: #000000 !important; } /* Ensure plot area background */ .gr-plot > div, .plot-container > div { background-color: #000000 !important; } /* Prevent white flash during plot updates */ .plot-container::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #000000; z-index: -1; } /* Force all plot elements to have black background */ .plot-container *, .gr-plot *, div[data-testid="plot"] * { background-color: #000000 !important; } /* Override any white backgrounds in matplotlib */ .plot-container canvas, .gr-plot canvas { background-color: #000000 !important; } /* Text elements */ h1, h2, h3, p, .markdown { color: white !important; } /* Sidebar header enhancement */ .sidebar h1 { background: linear-gradient(45deg, #74b9ff, #a29bfe) !important; -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; background-clip: text !important; text-align: center !important; margin-bottom: 15px !important; font-size: 28px !important; font-weight: 700 !important; font-family: monospace !important; } /* Sidebar description text */ .sidebar p { text-align: center !important; margin-bottom: 20px !important; line-height: 1.5 !important; font-size: 14px !important; font-family: monospace !important; } /* CI Links styling */ .sidebar a { color: #74b9ff !important; text-decoration: none !important; font-weight: 500 !important; font-family: monospace !important; transition: color 0.3s ease !important; } .sidebar a:hover { color: #a29bfe !important; text-decoration: underline !important; } .sidebar strong { color: #74b9ff !important; font-weight: 600 !important; font-family: monospace !important; } .sidebar em { color: #a29bfe !important; font-style: normal !important; opacity: 0.9 !important; font-family: monospace !important; } /* Remove all borders globally */ * { border-color: transparent !important; } /* Main content area */ .main-content { background-color: #000000 !important; padding: 0px 20px var(--main-content-bottom-margin, 10px) 20px !important; margin-left: 300px !important; height: 100vh !important; overflow-y: auto !important; box-sizing: border-box !important; display: flex !important; flex-direction: column !important; } /* Custom scrollbar for main content */ .main-content { scrollbar-width: thin !important; scrollbar-color: #333333 #000000 !important; } .main-content::-webkit-scrollbar { width: 8px !important; background: #000000 !important; } .main-content::-webkit-scrollbar-track { background: #000000 !important; } .main-content::-webkit-scrollbar-thumb { background-color: #333333 !important; border-radius: 4px !important; } .main-content::-webkit-scrollbar-thumb:hover { background-color: #555555 !important; } /* Failed tests display - seamless appearance with constrained height */ .failed-tests textarea { background-color: #000000 !important; color: #FFFFFF !important; font-family: monospace !important; font-size: 14px !important; border: none !important; padding: 10px !important; outline: none !important; line-height: 1.4 !important; height: 180px !important; max-height: 180px !important; min-height: 180px !important; overflow-y: auto !important; resize: none !important; scrollbar-width: thin !important; scrollbar-color: #333333 #000000 !important; scroll-behavior: auto !important; transition: opacity 0.5s ease-in-out !important; scroll-padding-top: 0 !important; } /* WebKit scrollbar styling for failed tests */ .failed-tests textarea::-webkit-scrollbar { width: 8px !important; } .failed-tests textarea::-webkit-scrollbar-track { background: #000000 !important; } .failed-tests textarea::-webkit-scrollbar-thumb { background-color: #333333 !important; border-radius: 4px !important; } .failed-tests textarea::-webkit-scrollbar-thumb:hover { background-color: #555555 !important; } /* Prevent white flash in text boxes during updates */ .failed-tests::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #000000; z-index: -1; } .failed-tests { background-color: #000000 !important; height: 200px !important; max-height: 200px !important; min-height: 200px !important; position: relative; transition: opacity 0.5s ease-in-out !important; flex-shrink: 0 !important; } .failed-tests .gr-textbox { background-color: #000000 !important; border: none !important; height: 180px !important; max-height: 180px !important; min-height: 180px !important; transition: opacity 0.5s ease-in-out !important; } /* Force all textbox elements to have black background */ .failed-tests *, .failed-tests .gr-textbox *, .failed-tests textarea * { background-color: #000000 !important; } /* Summary display styling */ .summary-display textarea { background-color: #000000 !important; color: #FFFFFF !important; font-family: monospace !important; font-size: 24px !important; border: none !important; padding: 20px !important; outline: none !important; line-height: 2 !important; text-align: right !important; resize: none !important; } .summary-display { background-color: #000000 !important; } /* Detail view layout */ .detail-view { display: flex !important; flex-direction: column !important; height: 100% !important; min-height: 0 !important; } /* JavaScript to reset scroll position */ .scroll-reset { animation: resetScroll 0.1s ease; } @keyframes resetScroll { 0% { scroll-behavior: auto; } 100% { scroll-behavior: auto; } }