import gradio as gr # --------------------------------------------------------------------------- # MODULE 1 — UI Module # --------------------------------------------------------------------------- CUSTOM_CSS = """ @import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap'); *, *::before, *::after { box-sizing: border-box; } body, .gradio-container { font-family: 'DM Sans', sans-serif !important; background: #0D0F14 !important; color: #E8EAF0 !important; } .gradio-container { max-width: 1140px !important; margin: 0 auto !important; padding: 32px 24px !important; } .eval-header { display: flex; align-items: center; gap: 16px; padding: 0 0 28px; border-bottom: 1px solid #2E3140; margin-bottom: 28px; } .eval-header .logo { width: 44px; height: 44px; border-radius: 10px; background: linear-gradient(135deg, #534AB7 0%, #1D9E75 100%); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 22px; line-height: 1; } .eval-header h1 { font-size: 20px !important; font-weight: 600 !important; letter-spacing: -0.3px !important; color: #E8EAF0 !important; margin: 0 !important; } .eval-header p { font-size: 13px !important; color: #9DA0B0 !important; margin: 2px 0 0 !important; } .eval-header .model-badge { margin-left: auto; font-family: 'Space Mono', monospace; font-size: 10px; background: #1E2028; border: 1px solid #3A3E52; color: #6A6E80; padding: 4px 10px; border-radius: 4px; letter-spacing: 1.5px; white-space: nowrap; } .gradio-textbox textarea, .gradio-code textarea, .gradio-textbox input { background: #161820 !important; border: 1px solid #2E3140 !important; border-radius: 10px !important; color: #E8EAF0 !important; font-family: 'DM Sans', sans-serif !important; font-size: 13.5px !important; line-height: 1.7 !important; padding: 14px 16px !important; transition: border-color 0.15s !important; resize: vertical !important; } .gradio-textbox textarea:focus, .gradio-code textarea:focus { border-color: #534AB7 !important; outline: none !important; box-shadow: 0 0 0 3px rgba(83, 74, 183, 0.15) !important; } .gradio-textbox textarea::placeholder { color: #4A4E60 !important; } #code-input { min-height: 300px; } #code-input .cm-editor { min-height: 300px; } .gradio-textbox label span, .gradio-code label span { font-family: 'DM Sans', sans-serif !important; font-size: 13px !important; font-weight: 700 !important; color: #E8EAF0 !important; text-transform: uppercase !important; letter-spacing: 0.8px !important; } #eval-btn { background: #534AB7 !important; border: none !important; color: #fff !important; font-family: 'DM Sans', sans-serif !important; font-size: 14px !important; font-weight: 500 !important; padding: 12px 32px !important; border-radius: 8px !important; cursor: pointer !important; transition: background 0.15s, transform 0.1s !important; letter-spacing: -0.1px !important; } #eval-btn:hover { background: #7F77DD !important; transform: translateY(-1px) !important; } #eval-btn:active { transform: translateY(0) !important; } #clear-btn { background: transparent !important; border: 1px solid #3A3E52 !important; color: #9DA0B0 !important; font-family: 'DM Sans', sans-serif !important; font-size: 13px !important; padding: 12px 20px !important; border-radius: 8px !important; cursor: pointer !important; transition: border-color 0.15s, color 0.15s !important; } #clear-btn:hover { border-color: #7F77DD !important; color: #E8EAF0 !important; } .results-heading { font-size: 11px !important; font-weight: 500 !important; color: #6A6E80 !important; text-transform: uppercase !important; letter-spacing: 1px !important; padding: 0 0 16px !important; border-bottom: 1px solid #2E3140 !important; margin-bottom: 20px !important; } #verdict-out textarea { background: #161820 !important; border: 1px solid #2E3140 !important; border-radius: 10px !important; font-family: 'Space Mono', monospace !important; font-size: 26px !important; font-weight: 700 !important; text-align: center !important; padding: 20px !important; color: #E8EAF0 !important; cursor: default !important; } #accuracy-out textarea { background: #161820 !important; border: 1px solid #2E3140 !important; border-radius: 10px !important; font-family: 'Space Mono', monospace !important; font-size: 26px !important; font-weight: 700 !important; text-align: center !important; padding: 20px !important; color: #E8EAF0 !important; cursor: default !important; } #summary-out textarea { background: #161820 !important; border: 1px solid #2E3140 !important; border-radius: 10px !important; font-family: 'DM Sans', sans-serif !important; font-size: 13.5px !important; line-height: 1.7 !important; padding: 16px !important; color: #C0C3D0 !important; cursor: default !important; } #issues-out textarea { background: #161820 !important; border: 1px solid #2E3140 !important; border-radius: 10px !important; font-family: 'DM Sans', sans-serif !important; font-size: 13.5px !important; line-height: 1.8 !important; padding: 16px !important; color: #C0C3D0 !important; cursor: default !important; min-height: 120px !important; } #error-out textarea { background: #1A0E0E !important; border: 1px solid #5a2020 !important; border-radius: 10px !important; font-family: 'DM Sans', sans-serif !important; font-size: 13.5px !important; padding: 14px 16px !important; color: #F0997B !important; cursor: default !important; } .divider { height: 1px; background: #2E3140; margin: 20px 0; } footer { display: none !important; } .gradio-container > .wrap > footer { display: none !important; } ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #3A3E52; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #534AB7; } """ HEADER_HTML = """