Spaces:
Running
Running
:root { | |
--primary-color: #2563EB; | |
--primary-light: #3B82F6; | |
--primary-dark: #1D4ED8; | |
--accent-color: #7C3AED; | |
--accent-light: #8B5CF6; | |
--success-color: #10B981; | |
--warning-color: #F59E0B; | |
--error-color: #EF4444; | |
--text-dark: #1F2937; | |
--text-medium: #4B5563; | |
--text-light: #9CA3AF; | |
--background-color: #F9FAFB; | |
--card-bg: #FFFFFF; | |
--border-color: #E5E7EB; | |
--spacing-xs: 4px; | |
--spacing-sm: 8px; | |
--spacing-md: 16px; | |
--spacing-lg: 24px; | |
--spacing-xl: 32px; | |
--spacing-xxl: 48px; | |
--border-radius-sm: 4px; | |
--border-radius-md: 8px; | |
--border-radius-lg: 12px; | |
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); | |
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); | |
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); | |
--font-family: 'Inter', sans-serif; | |
} | |
/* Base Styles */ | |
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
} | |
html { | |
scroll-behavior: smooth; | |
} | |
body { | |
font-family: var(--font-family); | |
line-height: 1.5; | |
color: var(--text-dark); | |
background-color: var(--background-color); | |
} | |
.container { | |
width: 100%; | |
max-width: 1200px; | |
margin: 0 auto; | |
padding: 0 var(--spacing-md); | |
} | |
/* Typography */ | |
h1, h2, h3, h4, h5, h6 { | |
font-weight: 600; | |
line-height: 1.2; | |
margin-bottom: var(--spacing-md); | |
} | |
h1 { | |
font-size: 2.5rem; | |
} | |
h2 { | |
font-size: 2rem; | |
} | |
h3 { | |
font-size: 1.5rem; | |
} | |
p { | |
margin-bottom: var(--spacing-md); | |
} | |
a { | |
color: var(--primary-color); | |
text-decoration: none; | |
transition: color 0.3s ease; | |
} | |
a:hover { | |
color: var(--primary-dark); | |
} | |
/* Button Styles */ | |
button { | |
cursor: pointer; | |
font-family: var(--font-family); | |
font-size: 1rem; | |
border: none; | |
transition: all 0.3s ease; | |
} | |
.btn, .analyze-btn, .action-btn { | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
padding: var(--spacing-sm) var(--spacing-lg); | |
border-radius: var(--border-radius-md); | |
font-weight: 500; | |
} | |
.analyze-btn { | |
background-color: var(--primary-color); | |
color: white; | |
font-weight: 600; | |
padding: var(--spacing-md) var(--spacing-xl); | |
border-radius: var(--border-radius-md); | |
margin-top: var(--spacing-md); | |
width: 100%; | |
} | |
.analyze-btn:hover { | |
background-color: var(--primary-dark); | |
transform: translateY(-1px); | |
} | |
.analyze-btn:disabled { | |
background-color: var(--text-light); | |
cursor: not-allowed; | |
transform: none; | |
} | |
.action-btn { | |
padding: var(--spacing-sm) var(--spacing-md); | |
background-color: var(--card-bg); | |
color: var(--text-medium); | |
border: 1px solid var(--border-color); | |
margin-left: var(--spacing-sm); | |
} | |
.action-btn:hover { | |
background-color: var(--background-color); | |
color: var(--text-dark); | |
} | |
.action-btn i { | |
margin-right: 4px; | |
} | |
/* Header */ | |
.header { | |
background-color: var(--card-bg); | |
box-shadow: var(--shadow-sm); | |
position: sticky; | |
top: 0; | |
z-index: 100; | |
} | |
.header .container { | |
display: flex; | |
align-items: center; | |
justify-content: space-between; | |
padding-top: var(--spacing-md); | |
padding-bottom: var(--spacing-md); | |
} | |
.logo { | |
display: flex; | |
align-items: center; | |
} | |
.logo i { | |
font-size: 1.8rem; | |
color: var(--primary-color); | |
margin-right: var(--spacing-sm); | |
} | |
.logo h1 { | |
font-size: 1.5rem; | |
font-weight: 700; | |
margin-bottom: 0; | |
} | |
.nav ul { | |
display: flex; | |
list-style: none; | |
} | |
.nav li { | |
margin-left: var(--spacing-lg); | |
} | |
.nav a { | |
color: var(--text-medium); | |
font-weight: 500; | |
padding: 0.5rem 0; | |
position: relative; | |
} | |
.nav a.active, .nav a:hover { | |
color: var(--primary-color); | |
} | |
.nav a.active::after, .nav a:hover::after { | |
content: ''; | |
position: absolute; | |
bottom: -4px; | |
left: 0; | |
width: 100%; | |
height: 2px; | |
background-color: var(--primary-color); | |
} | |
/* Hero Section */ | |
.hero { | |
padding: var(--spacing-xxl) 0; | |
text-align: center; | |
background: linear-gradient(120deg, var(--primary-light), var(--accent-color)); | |
color: white; | |
} | |
.hero-title { | |
font-size: 3rem; | |
font-weight: 700; | |
margin-bottom: var(--spacing-md); | |
} | |
.hero-subtitle { | |
font-size: 1.2rem; | |
max-width: 800px; | |
margin: 0 auto var(--spacing-lg); | |
} | |
/* Upload Section */ | |
.upload-section { | |
padding: var(--spacing-xxl) 0; | |
} | |
.tabs { | |
display: flex; | |
justify-content: center; | |
margin-bottom: var(--spacing-xl); | |
} | |
.tab-btn { | |
padding: var(--spacing-md) var(--spacing-xl); | |
background-color: var(--card-bg); | |
color: var(--text-medium); | |
border: 1px solid var(--border-color); | |
font-weight: 500; | |
} | |
.tab-btn:first-child { | |
border-radius: var(--border-radius-md) 0 0 var(--border-radius-md); | |
} | |
.tab-btn:last-child { | |
border-radius: 0 var(--border-radius-md) var(--border-radius-md) 0; | |
} | |
.tab-btn.active { | |
background-color: var(--primary-color); | |
color: white; | |
border-color: var(--primary-color); | |
} | |
.tab-content { | |
display: none; | |
} | |
.tab-content.active { | |
display: block; | |
} | |
.upload-container { | |
display: grid; | |
grid-template-columns: 1fr; | |
gap: var(--spacing-xl); | |
} | |
@media (min-width: 768px) { | |
.upload-container { | |
grid-template-columns: 2fr 1fr; | |
} | |
} | |
.upload-area { | |
display: flex; | |
flex-direction: column; | |
align-items: center; | |
justify-content: center; | |
text-align: center; | |
padding: var(--spacing-xxl); | |
background-color: var(--card-bg); | |
border: 2px dashed var(--border-color); | |
border-radius: var(--border-radius-lg); | |
cursor: pointer; | |
transition: all 0.3s ease; | |
} | |
.upload-area:hover { | |
border-color: var(--primary-light); | |
background-color: rgba(37, 99, 235, 0.05); | |
} | |
.upload-area.dragover { | |
border-color: var(--primary-color); | |
background-color: rgba(37, 99, 235, 0.1); | |
} | |
.upload-area i { | |
font-size: 3rem; | |
color: var(--primary-color); | |
margin-bottom: var(--spacing-md); | |
} | |
.upload-area h3 { | |
margin-bottom: var(--spacing-sm); | |
} | |
.upload-area .file-types { | |
font-size: 0.9rem; | |
color: var(--text-light); | |
margin-top: var(--spacing-md); | |
} | |
.analysis-options { | |
background-color: var(--card-bg); | |
padding: var(--spacing-xl); | |
border-radius: var(--border-radius-lg); | |
box-shadow: var(--shadow-md); | |
} | |
.radio-group { | |
margin-bottom: var(--spacing-lg); | |
} | |
.radio-option { | |
margin-bottom: var(--spacing-sm); | |
display: flex; | |
align-items: center; | |
} | |
.radio-option input[type="radio"] { | |
margin-right: var(--spacing-sm); | |
} | |
/* Results Container */ | |
.results-container { | |
margin-top: var(--spacing-xl); | |
background-color: var(--card-bg); | |
border-radius: var(--border-radius-lg); | |
box-shadow: var(--shadow-md); | |
overflow: hidden; | |
} | |
.results-header { | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
padding: var(--spacing-lg); | |
border-bottom: 1px solid var(--border-color); | |
} | |
.results-header h2 { | |
margin-bottom: 0; | |
} | |
.results-content { | |
padding: var(--spacing-xl); | |
white-space: pre-wrap; | |
line-height: 1.6; | |
} | |
/* Features Section */ | |
.features { | |
padding: var(--spacing-xxl) 0; | |
background-color: var(--card-bg); | |
} | |
.section-title { | |
text-align: center; | |
margin-bottom: var(--spacing-xl); | |
} | |
.features-grid { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |
gap: var(--spacing-xl); | |
} | |
.feature-card { | |
background-color: var(--background-color); | |
padding: var(--spacing-xl); | |
border-radius: var(--border-radius-lg); | |
text-align: center; | |
box-shadow: var(--shadow-sm); | |
transition: transform 0.3s ease, box-shadow 0.3s ease; | |
} | |
.feature-card:hover { | |
transform: translateY(-5px); | |
box-shadow: var(--shadow-lg); | |
} | |
.feature-icon { | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
width: 64px; | |
height: 64px; | |
background-color: rgba(37, 99, 235, 0.1); | |
border-radius: 50%; | |
margin-bottom: var(--spacing-md); | |
} | |
.feature-icon i { | |
font-size: 1.5rem; | |
color: var(--primary-color); | |
} | |
/* About Section */ | |
.about { | |
padding: var(--spacing-xxl) 0; | |
} | |
.about-content { | |
max-width: 800px; | |
margin: 0 auto; | |
} | |
/* Footer */ | |
.footer { | |
background-color: var(--text-dark); | |
color: white; | |
padding: var(--spacing-xl) 0; | |
text-align: center; | |
} | |
.footer p { | |
margin-bottom: 0; | |
} | |
.footer i { | |
color: var(--error-color); | |
} | |
/* Loading Overlay */ | |
.loading-overlay { | |
position: fixed; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
background-color: rgba(0, 0, 0, 0.7); | |
display: flex; | |
flex-direction: column; | |
align-items: center; | |
justify-content: center; | |
z-index: 1000; | |
color: white; | |
display: none; | |
} | |
.spinner { | |
width: 50px; | |
height: 50px; | |
border: 5px solid rgba(255, 255, 255, 0.3); | |
border-radius: 50%; | |
border-top-color: var(--primary-color); | |
margin-bottom: var(--spacing-md); | |
} | |
/* Responsive Styles */ | |
@media (max-width: 768px) { | |
.hero-title { | |
font-size: 2.2rem; | |
} | |
.hero-subtitle { | |
font-size: 1rem; | |
} | |
.logo h1 { | |
font-size: 1.2rem; | |
} | |
.nav li { | |
margin-left: var(--spacing-md); | |
} | |
.upload-area { | |
padding: var(--spacing-lg); | |
} | |
.feature-card { | |
padding: var(--spacing-lg); | |
} | |
} | |
@media (max-width: 576px) { | |
.logo h1 { | |
display: none; | |
} | |
.nav a { | |
font-size: 0.9rem; | |
} | |
.tabs { | |
flex-direction: column; | |
width: 100%; | |
} | |
.tab-btn { | |
width: 100%; | |
border-radius: var(--border-radius-md) ; | |
margin-bottom: var(--spacing-sm); | |
} | |
.feature-card { | |
padding: var(--spacing-md); | |
} | |
} |