Distopia22's picture
Feature: Replace API config with upload redirect button
08eb6be
/* ==================== Global Styles ==================== */
.gradio-container {
max-width: 100% !important;
padding: 0 !important;
margin: 0 !important;
background: linear-gradient(135deg, #f5f7fa 0%, #e8ecf1 100%) !important;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;
height: 100vh !important;
overflow: hidden !important;
}
/* ==================== Header Styling ==================== */
.header-container {
background: linear-gradient(90deg, #00d4aa 0%, #00a896 100%);
padding: 20px 25px;
text-align: center;
border-radius: 0;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
margin: 0;
position: sticky;
top: 0;
z-index: 100;
}
.header-container h1 {
color: white;
font-size: 1.8rem;
font-weight: 700;
margin: 0;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}
.header-container p {
color: #e0f7f4;
font-size: 0.95rem;
margin: 5px 0 0 0;
}
/* ==================== Layout Container ==================== */
.main-container {
display: flex;
height: calc(100vh - 100px);
overflow: hidden;
}
/* ==================== Left Sidebar (Dark Cyan) ==================== */
.sidebar {
background: linear-gradient(180deg, #008b8b 0%, #006666 100%) !important;
border-right: 2px solid #005555 !important;
padding: 20px !important;
width: 280px !important;
min-width: 280px !important;
height: 100% !important;
overflow-y: auto !important;
box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15) !important;
}
.sidebar-title {
color: #ffffff !important;
font-size: 1.2rem !important;
font-weight: 600 !important;
margin-bottom: 15px !important;
padding-bottom: 10px !important;
border-bottom: 2px solid #00d4aa !important;
}
/* ==================== Example Buttons ==================== */
.example-btn {
background: linear-gradient(135deg, #00d4aa 0%, #00a896 100%) !important;
color: white !important;
border: none !important;
border-radius: 10px !important;
padding: 12px 15px !important;
margin: 6px 0 !important;
font-weight: 500 !important;
font-size: 0.9rem !important;
cursor: pointer !important;
transition: all 0.3s ease !important;
width: 100% !important;
text-align: left !important;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2) !important;
}
.example-btn:hover {
background: linear-gradient(135deg, #00ffcc 0%, #00d4aa 100%) !important;
transform: translateX(5px) !important;
box-shadow: 0 4px 12px rgba(0, 212, 170, 0.4) !important;
}
/* ==================== File Upload Section ==================== */
.file-upload {
margin: 10px 0 !important;
}
.upload-btn {
background: linear-gradient(135deg, #ff8c00 0%, #ff6b00 100%) !important;
color: white !important;
border: none !important;
border-radius: 10px !important;
padding: 12px 15px !important;
margin: 10px 0 !important;
font-weight: 500 !important;
font-size: 0.9rem !important;
cursor: pointer !important;
transition: all 0.3s ease !important;
width: 100% !important;
text-align: center !important;
box-shadow: 0 2px 5px rgba(255, 140, 0, 0.3) !important;
}
.upload-btn:hover {
background: linear-gradient(135deg, #ffa500 0%, #ff8c00 100%) !important;
transform: translateY(-2px) !important;
box-shadow: 0 4px 12px rgba(255, 140, 0, 0.4) !important;
}
.upload-info {
color: #e0f7f4 !important;
font-size: 0.75rem !important;
font-style: italic !important;
margin-top: 5px !important;
}
/* ==================== Right Chat Area ==================== */
.chat-container {
flex: 1;
display: flex;
flex-direction: column;
background: #fafbfc !important;
padding: 20px !important;
height: 100% !important;
overflow: hidden !important;
}
/* ==================== Output/Response Area ==================== */
.output-area {
flex: 1;
background: white !important;
border: 1px solid #e0e7ef !important;
border-radius: 12px !important;
padding: 20px !important;
margin-bottom: 15px !important;
overflow-y: auto !important;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
}
.output-area h3 {
color: #00a896 !important;
border-bottom: 2px solid #00d4aa !important;
padding-bottom: 8px !important;
margin-top: 15px !important;
margin-bottom: 12px !important;
}
.output-area strong {
color: #00a896 !important;
}
.output-area hr {
border: none !important;
border-top: 1px solid #e0e7ef !important;
margin: 15px 0 !important;
}
.output-area p {
color: #000000 !important;
line-height: 1.6 !important;
margin: 8px 0 !important;
}
.output-area li {
color: #000000 !important;
}
/* ==================== Input Area (GPT-Style Prompt Box) ==================== */
.input-container {
background: white !important;
border: 2px solid #008b8b !important;
border-radius: 12px !important;
padding: 15px !important;
box-shadow: 0 2px 8px rgba(0, 139, 139, 0.15) !important;
}
.prompt-input textarea {
background: white !important;
color: #000000 !important;
border: 1px solid #008b8b !important;
border-radius: 3px !important;
font-size: 0.95rem !important;
padding: 12px !important;
resize: none !important;
}
.prompt-input textarea:focus {
border: 2px solid #008b8b !important;
outline: none !important;
box-shadow: 0 0 0 3px rgba(0, 139, 139, 0.1) !important;
background: white !important;
}
/* ==================== Button Styling ==================== */
.send-button {
background: linear-gradient(135deg, #00d4aa 0%, #00a896 100%) !important;
color: white !important;
border: none !important;
border-radius: 8px !important;
padding: 10px 28px !important;
font-size: 0.95rem !important;
font-weight: 600 !important;
cursor: pointer !important;
transition: all 0.3s ease !important;
margin-left: 8px !important;
box-shadow: 0 2px 8px rgba(0, 212, 170, 0.3) !important;
}
.send-button:hover {
background: linear-gradient(135deg, #00ffcc 0%, #00d4aa 100%) !important;
box-shadow: 0 4px 15px rgba(0, 212, 170, 0.4) !important;
transform: translateY(-2px) !important;
}
.clear-button {
background: white !important;
color: #718096 !important;
border: 1px solid #d1d5db !important;
border-radius: 8px !important;
padding: 10px 28px !important;
font-size: 0.95rem !important;
font-weight: 600 !important;
cursor: pointer !important;
transition: all 0.3s ease !important;
margin-left: 8px !important;
}
.clear-button:hover {
background: #f7fafc !important;
border-color: #cbd5e0 !important;
color: #4a5568 !important;
transform: translateY(-2px) !important;
}
/* ==================== API Configuration ==================== */
.api-config {
background: rgba(255, 255, 255, 0.1) !important;
border: 1px solid rgba(255, 255, 255, 0.2) !important;
border-radius: 8px !important;
padding: 12px !important;
margin-bottom: 12px !important;
}
.api-config input {
background: rgba(255, 255, 255, 0.9) !important;
color: #2d3748 !important;
border: 1px solid #e0e7ef !important;
border-radius: 6px !important;
padding: 8px 12px !important;
font-size: 0.9rem !important;
}
.api-config input:focus {
border-color: #00d4aa !important;
outline: none !important;
box-shadow: 0 0 0 3px rgba(0, 212, 170, 0.1) !important;
}
.api-config label {
color: #ffffff !important;
}
.check-api-button {
background: linear-gradient(135deg, #00a896 0%, #008577 100%) !important;
color: white !important;
border: none !important;
border-radius: 6px !important;
padding: 8px 18px !important;
font-weight: 500 !important;
font-size: 0.85rem !important;
cursor: pointer !important;
transition: all 0.3s ease !important;
box-shadow: 0 2px 5px rgba(0, 168, 150, 0.2) !important;
}
.check-api-button:hover {
background: linear-gradient(135deg, #00d4aa 0%, #00a896 100%) !important;
box-shadow: 0 4px 10px rgba(0, 168, 150, 0.3) !important;
}
/* ==================== Scrollbar Styling ==================== */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #f1f5f9;
border-radius: 4px;
}
::-webkit-scrollbar-thumb {
background: #00d4aa;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #00a896;
}
/* Sidebar scrollbar */
.sidebar::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.2);
}
.sidebar::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.3);
}
.sidebar::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.5);
}
/* ==================== Accordion Styling ==================== */
.accordion {
background: rgba(255, 255, 255, 0.1) !important;
border: 1px solid rgba(255, 255, 255, 0.2) !important;
border-radius: 8px !important;
margin-bottom: 10px !important;
}
.accordion summary {
color: #ffffff !important;
font-weight: 600 !important;
font-size: 0.9rem !important;
padding: 10px !important;
cursor: pointer !important;
}
/* ==================== Footer ==================== */
.footer {
text-align: center;
padding: 15px;
color: #718096;
font-size: 0.85rem;
background: #ffffff;
border-top: 1px solid #e0e7ef;
margin-top: 0;
}
.footer strong {
color: #00a896;
}
/* ==================== Responsive Design ==================== */
@media (max-width: 768px) {
.header-container h1 {
font-size: 1.3rem;
}
.sidebar {
width: 220px !important;
min-width: 220px !important;
}
.main-container {
flex-direction: column;
height: auto;
}
}
/* ==================== Fix Endless Scrolling ==================== */
body {
overflow: hidden !important;
}
html {
overflow: hidden !important;
}
.gradio-container {
overflow: hidden !important;
}
/* ==================== Upload Redirect Button ==================== */
.upload-redirect-button {
background: linear-gradient(135deg, #ff8c00 0%, #ff6b00 100%) !important;
color: white !important;
border: none !important;
border-radius: 10px !important;
padding: 14px 20px !important;
margin: 10px 0 !important;
font-weight: 600 !important;
font-size: 1rem !important;
cursor: pointer !important;
transition: all 0.3s ease !important;
width: 100% !important;
text-align: center !important;
box-shadow: 0 3px 8px rgba(255, 140, 0, 0.3) !important;
display: block !important;
}
.upload-redirect-button:hover {
background: linear-gradient(135deg, #ffa500 0%, #ff8c00 100%) !important;
transform: translateY(-3px) !important;
box-shadow: 0 6px 16px rgba(255, 140, 0, 0.5) !important;
}
.upload-redirect-button:active {
transform: translateY(-1px) !important;
box-shadow: 0 4px 10px rgba(255, 140, 0, 0.4) !important;
}