custom_css = """ /* ============================================ MAIN LAYOUT AND CONTAINERS Purpose: Core layout structure with minimal spacing ============================================ */ /* Main container styling with blue border and rounded corners */ .container { border: 2px solid #2196F3; /* Blue border with 2px thickness */ border-radius: 10px; /* Rounded corners */ padding: 10px !important; /* Inner spacing */ margin: 2px auto !important; /* Outer spacing and center alignment */ background: white; /* White background */ position: relative; /* For absolute positioning of children */ width: 100% !important; /* Full width */ max-width: 1200px !important; /* Maximum width constraint */ } /* Section header label positioning and styling */ .container::before { position: absolute; /* Position independently */ top: -18px; /* Negative top margin to overlap container border */ left: 20px; /* Left offset */ background: white; /* White background for text */ padding: 0 2px; /* Horizontal padding*/ color: #2196F3; /* Blue text color */ font-weight: bold; /* Bold text */ font-size: 1.2em; /* Larger text size */ } /* ============================================ TITLE SECTION Purpose: "Prompts on Chosen Model" header styling ============================================ */ /* Title container styling */ .title-container { width: fit-content !important; /* Width based on content */ margin: 0 auto !important; /* Center alignment */ margin-bottom: 30px !important; /* Adjust the value (30px) as needed */ padding: 2px 40px !important; /* Horizontal padding */ border: 1px solid #0066cc !important; /* Blue border */ border-radius: 10px !important; /* Rounded corners */ background-color: rgba(0, 102, 204, 0.05) !important; /* Light blue background */ } /* Center align all text in title container */ .title-container * { text-align: center; /* Center text alignment */ margin: 0 !important; /* Remove margins */ line-height: 1.2 !important; /* Line height for readability */ } /* Main title styling */ .title-container h1 { font-size: 28px !important; /* Large font size */ margin-bottom: 1px !important; /* Small bottom margin */ } /* Subtitle styling */ .title-container h3 { font-size: 18px !important; /* Medium font size */ margin-bottom: 1px !important; /* Small bottom margin */ } /* Paragraph text styling in title */ .title-container p { font-size: 14px !important; /* Regular font size */ margin-bottom: 1px !important; /* Small bottom margin */ } /* ============================================ SECTION LABELS Purpose: Section header text content ============================================ */ /* Define text content for each section header */ .input-container::before { content: 'PROMPT ANALYSIS'; } .analysis-container::before { content: 'PROMPT REFINEMENT'; } .meta-container::before { content: 'REFINEMENT METHOD'; } .model-container::before { content: 'PROMPTS APPLICATION'; } .examples-container::before { content: 'EXAMPLES'; } /* ============================================ INPUT ELEMENTS Purpose: Textarea and input styling ============================================ */ /* Textarea styling */ .input-container textarea { resize: vertical !important; /* Allow vertical resizing only */ min-height: 100px !important; /* Minimum height */ max-height: 500px !important; /* Maximum height */ width: 100% !important; /* Full width */ border: 1px solid #ddd !important; /* Light gray border */ border-radius: 4px !important; /* Rounded corners */ padding: 2px !important; /* Inner spacing */ transition: all 0.3s ease !important; /* Smooth transitions */ } /* Textarea focus state */ .input-container textarea:focus { border-color: #2196F3 !important; /* Blue border when focused */ box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1) !important; /* Subtle shadow */ } /* ============================================ RADIO BUTTONS Purpose: Selection options styling ============================================ */ /* Radio button group container */ .radio-group { background-color: rgba(0, 102, 204, 0.05) !important; /* Light blue background */ padding: 10px !important; /* Inner spacing */ border-radius: 8px !important; /* Rounded corners */ border: 1px solid rgba(0, 102, 204, 0.1) !important; /* Light blue border */ display: flex !important; /* Flex layout */ justify-content: center !important; /* Center items */ flex-wrap: wrap !important; /* Allow wrapping */ gap: 8px !important; /* Space between items */ width: 100% !important; /* Full width */ } /* Radio button container */ .gradio-radio { display: flex !important; /* Flex layout */ justify-content: center !important; /* Center items */ flex-wrap: wrap !important; /* Allow wrapping */ gap: 8px !important; /* Space between items */ } /* Radio button label styling */ .gradio-radio label { display: flex !important; /* Flex layout */ align-items: center !important; /* Center vertically */ padding: 6px 12px !important; /* Inner spacing */ border: 1px solid #ddd !important; /* Light gray border */ border-radius: 4px !important; /* Rounded corners */ cursor: pointer !important; /* Pointer cursor */ background: white !important; /* White background */ margin: 4px !important; /* Outer spacing */ } /* Selected radio button styling */ .gradio-radio input[type="radio"]:checked + label { background: rgba(0, 102, 204, 0.1) !important; /* Light blue background */ border-color: #0066cc !important; /* Blue border */ color: #0066cc !important; /* Blue text */ font-weight: bold !important; /* Bold text */ } /* ============================================ BUTTONS Purpose: Interactive button styling ============================================ */ /* Base button styling */ .gradio-button { background-color: white !important; /* White background */ color: #2196F3 !important; /* Blue text */ border: 2px solid #2196F3 !important; /* Blue border */ border-radius: 4px !important; /* Rounded corners */ padding: 8px 16px !important; /* Inner spacing */ margin: 10px 0 !important; /* Vertical margin */ font-weight: bold !important; /* Bold text */ transition: all 0.3s ease !important; /* Smooth transitions */ } /* Button hover state */ .gradio-button:hover { background-color: #2196F3 !important; /* Blue background on hover */ color: white !important; /* White text on hover */ box-shadow: 0 2px 5px rgba(33, 150, 243, 0.3) !important; /* Shadow effect */ } /* Highlighted button state */ .button-highlight { animation: pulse 2s infinite; /* Pulsing animation */ border-color: #ff9800 !important; /* Orange border */ border-width: 3px !important; /* Thicker border */ box-shadow: 0 0 10px rgba(255, 152, 0, 0.5) !important; /* Glow effect */ } /* Pulsing animation keyframes */ @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 152, 0, 0.4); } /* Start state */ 70% { box-shadow: 0 0 0 10px rgba(255, 152, 0, 0); } /* Mid state */ 100% { box-shadow: 0 0 0 0 rgba(255, 152, 0, 0); } /* End state */ } /* Waiting button state */ .button-waiting { opacity: 0.6 !important; /* Reduced opacity */ } /* Completed button state */ .button-completed { border-color: #4CAF50 !important; /* Green border */ background-color: rgba(76, 175, 80, 0.1) !important; /* Light green background */ } /* ============================================ LAYOUT COMPONENTS Purpose: Basic layout element styling ============================================ */ /* Accordion styling */ .gradio-accordion { margin: 10px 0 !important; /* Vertical margin */ border: none !important; /* Remove border */ } /* Main container layout */ .gradio-container { display: flex !important; /* Flex layout */ flex-direction: column !important; /* Stack vertically */ align-items: center !important; /* Center items */ width: 100% !important; /* Full width */ max-width: 1200px !important; /* Maximum width */ margin: 2px auto !important; /* Center horizontally */ } /* Dropdown menu styling */ .gradio-dropdown { width: 100% !important; /* Full width */ max-width: 300px !important; /* Maximum width */ } /* JSON response container */ .full-response-json { margin-top: 20px !important; /* Top margin */ padding: 10px !important; /* Inner spacing */ background-color: rgba(0, 102, 204, 0.05) !important; /* Light blue background */ border-radius: 8px !important; /* Rounded corners */ } /* ============================================ COMPARISON COLUMNS Purpose: Side-by-side output display ============================================ */ /* Column container styling */ .comparison-column { border: 2px solid #2196F3 !important; /* Blue border */ border-radius: 8px !important; /* Rounded corners */ padding: 4px !important; /* Inner spacing */ margin: 1px !important; /* Minimal margin */ background-color: white !important; /* White background */ flex: 1 !important; /* Equal width columns */ min-width: 300px !important; /* Minimum width */ padding-right: 2px !important; /* Add this to remove right padding */ margin-right: 2px !important; /* Add this to remove right margin */ } /* Column header styling */ .comparison-column h3 { color: #2196F3 !important; /* Blue text */ border-bottom: 1px solid #e0e0e0 !important; /* Bottom border */ padding-bottom: 2px !important; /* Bottom padding */ margin: 0 0 4px 0 !important; /* Bottom margin */ font-size: 16px !important; /* Font size */ text-align: center !important; /* Center text */ } /* Output area styling */ .comparison-output { min-height: 200px !important; /* Minimum height */ padding: 6px !important; /* Inner spacing */ background-color: #f8f9fa !important; /* Light gray background */ border: 1px solid #dee2e6 !important; /* Gray border */ border-radius: 4px !important; /* Rounded corners */ margin: 4px 0 !important; /* Vertical margin */ white-space: pre-wrap !important; /* Preserve whitespace */ word-wrap: break-word !important; /* Break long words */ font-family: monospace !important; /* Monospace font */ line-height: 1.5 !important; /* Line height */ overflow-y: auto !important; /* Vertical scroll */ width: 100% !important; /* Full width */ visibility: visible !important; /* Always visible */ opacity: 1 !important; /* Full opacity */ padding: 10px 3px !important; /* 20px top/bottom, 30px left/right */ } /* ============================================ OUTPUT ROW Purpose: Layout for output display ============================================ */ /* Output row container */ .output-row { display: flex !important; /* Flex layout */ gap: 1mm !important; /* Small gap between items */ padding: 2mm !important; /* Inner spacing */ width: 100% !important; /* Full width */ flex-wrap: wrap !important; /* Allow wrapping */ } /* ============================================ TABS Purpose: Tab navigation styling ============================================ */ /* Tab container */ .tabs { border: none !important; /* Remove border */ margin-top: 4px !important; /* Top margin */ width: 100% !important; /* Full width */ } /* Individual tab item */ .tabitem { padding: 4px !important; /* Inner spacing */ width: 100% !important; /* Full width */ } /* ============================================ TEXT CONTENT Purpose: Text display formatting ============================================ */ /* Markdown text styling */ .markdown-text { color: #333333 !important; /* Dark gray text */ line-height: 1.6 !important; /* Line height */ font-size: 14px !important; /* Font size */ margin: 4px 4px !important; /* Vertical margin */ opacity: 1 !important; /* Full opacity */ visibility: visible !important; /* Always visible */ padding: 15px !important; } /* Placeholder text for empty output */ .comparison-output:empty::before { content: 'Output will appear here' !important; /* Placeholder text */ color: #666666 !important; /* Gray text */ font-style: italic !important; /* Italic style */ } /* ============================================ BUTTON STATES Purpose: Button interaction styling ============================================ */ /* Default button state */ button { opacity: 1 !important; /* Full opacity */ pointer-events: auto !important; /* Enable interactions */ } /* Disabled button state */ button:disabled { opacity: 0.6 !important; /* Reduced opacity */ pointer-events: none !important; /* Disable interactions */ } /* ============================================ VISIBILITY Purpose: Element display control ============================================ */ /* Output content visibility */ .output-content { opacity: 1 !important; /* Full opacity */ visibility: visible !important; /* Always visible */ display: block !important; /* Block display */ } /* Output container visibility */ .output-container { display: block !important; /* Block display */ visibility: visible !important; /* Always visible */ opacity: 1 !important; /* Full opacity */ } /* ============================================ CODE BLOCKS Purpose: Code and pre-formatted text styling ============================================ */ /* Code block styling */ pre, code { background-color: #f8f9fa !important; /* Light gray background */ border: 1px solid #dee2e6 !important; /* Gray border */ border-radius: 4px !important; /* Rounded corners */ padding: 10px !important; /* Inner spacing */ margin: 5px 0 !important; /* Vertical margin */ white-space: pre-wrap !important; /* Preserve whitespace */ word-wrap: break-word !important; /* Break long words */ font-family: monospace !important; /* Monospace font */ line-height: 1.5 !important; /* Line height */ display: block !important; /* Block display */ width: 100% !important; /* Full width */ } """