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 */
}
"""