|
|
|
.loading-spinner { |
|
display: none; |
|
width: 50px; |
|
height: 50px; |
|
border: 5px solid #f3f3f3; |
|
border-top: 5px solid #3B82F6; |
|
border-radius: 50%; |
|
animation: spin 1s linear infinite; |
|
margin: 0 auto; |
|
} |
|
|
|
@keyframes spin { |
|
0% { transform: rotate(0deg); } |
|
100% { transform: rotate(360deg); } |
|
} |
|
|
|
|
|
.progress-bar { |
|
width: 100%; |
|
height: 6px; |
|
background-color: #e5e7eb; |
|
border-radius: 3px; |
|
overflow: hidden; |
|
display: none; |
|
margin: 1rem auto; |
|
max-width: 300px; |
|
} |
|
|
|
.progress-bar-fill { |
|
height: 100%; |
|
background-color: #3B82F6; |
|
width: 0%; |
|
transition: width 0.3s ease; |
|
} |
|
|
|
|
|
.tooltip { |
|
position: relative; |
|
display: inline-block; |
|
} |
|
|
|
.tooltip .tooltip-text { |
|
visibility: hidden; |
|
background-color: #1f2937; |
|
color: white; |
|
text-align: center; |
|
padding: 8px 12px; |
|
border-radius: 6px; |
|
position: absolute; |
|
z-index: 1; |
|
bottom: 125%; |
|
left: 50%; |
|
transform: translateX(-50%); |
|
opacity: 0; |
|
transition: opacity 0.3s; |
|
font-size: 0.875rem; |
|
white-space: nowrap; |
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); |
|
} |
|
|
|
.tooltip:hover .tooltip-text { |
|
visibility: visible; |
|
opacity: 1; |
|
} |
|
|
|
|
|
.file-type-icon { |
|
font-size: 1.5rem; |
|
margin-right: 0.5rem; |
|
color: #3B82F6; |
|
} |
|
|
|
|
|
@keyframes checkmark { |
|
0% { transform: scale(0); opacity: 0; } |
|
50% { transform: scale(1.2); opacity: 0.8; } |
|
100% { transform: scale(1); opacity: 1; } |
|
} |
|
|
|
.success-checkmark { |
|
display: none; |
|
color: #10B981; |
|
animation: checkmark 0.5s ease-in-out forwards; |
|
} |
|
|
|
|
|
.sample-btn { |
|
transition: all 0.3s ease; |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.sample-btn::after { |
|
content: ''; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
width: 100%; |
|
height: 100%; |
|
background: linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0)); |
|
transform: translateY(-100%); |
|
transition: transform 0.3s ease; |
|
} |
|
|
|
.sample-btn:hover::after { |
|
transform: translateY(0); |
|
} |
|
|
|
.sample-btn:hover { |
|
transform: translateY(-2px); |
|
box-shadow: 0 8px 15px rgba(0,0,0,0.1); |
|
} |
|
|
|
|
|
.drop-zone { |
|
transition: all 0.3s ease; |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.drop-zone::before { |
|
content: ''; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
border-radius: 8px; |
|
border: 2px dashed #3B82F6; |
|
opacity: 0; |
|
transition: opacity 0.3s ease; |
|
} |
|
|
|
.drop-zone:hover::before { |
|
opacity: 1; |
|
} |
|
|
|
|
|
#fileInfo { |
|
background: linear-gradient(to right, #f8fafc, #f1f5f9); |
|
border: 1px solid #e2e8f0; |
|
transition: all 0.3s ease; |
|
} |
|
|
|
#fileInfo:hover { |
|
transform: translateY(-2px); |
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); |
|
} |
|
|
|
|
|
.feature-card { |
|
transition: all 0.3s ease; |
|
} |
|
|
|
.feature-card:hover { |
|
transform: translateY(-2px); |
|
box-shadow: 0 8px 15px rgba(0,0,0,0.1); |
|
} |
|
|
|
.feature-icon { |
|
transition: all 0.3s ease; |
|
} |
|
|
|
.feature-card:hover .feature-icon { |
|
transform: scale(1.1); |
|
color: #2563eb; |
|
} |
|
|