Spaces:
Sleeping
Sleeping
body { | |
font-family: "Inter", -apple-system, sans-serif; | |
margin: 0; | |
padding: 0; | |
background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%); | |
min-height: 100vh; | |
color: #ffffff; | |
} | |
.hero { | |
text-align: center; | |
padding: 60px 20px; | |
background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), | |
url("/static/hero-bg.jpg"); | |
background-size: cover; | |
background-position: center; | |
} | |
.hero h1 { | |
font-size: 3em; | |
margin-bottom: 20px; | |
background: linear-gradient(45deg, #4caf50, #45a049); | |
-webkit-background-clip: text; | |
-webkit-text-fill-color: transparent; | |
} | |
.hero p { | |
font-size: 1.2em; | |
max-width: 600px; | |
margin: 0 auto 30px; | |
color: #cccccc; | |
} | |
.container { | |
max-width: 1000px; | |
margin: -50px auto 0; | |
padding: 20px; | |
position: relative; | |
} | |
.card { | |
background: rgba(36, 36, 36, 0.95); | |
border-radius: 15px; | |
padding: 30px; | |
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); | |
backdrop-filter: blur(10px); | |
} | |
.features { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |
gap: 20px; | |
margin: 40px 0; | |
} | |
.feature { | |
text-align: center; | |
padding: 20px; | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: 10px; | |
} | |
.feature i { | |
font-size: 2em; | |
color: #4caf50; | |
margin-bottom: 15px; | |
} | |
.upload-section { | |
text-align: center; | |
padding: 40px 20px; | |
border: 2px dashed #444; | |
border-radius: 15px; | |
margin: 20px 0; | |
transition: all 0.3s ease; | |
} | |
.upload-section:hover { | |
border-color: #4caf50; | |
} | |
.voice-inputs { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
gap: 20px; | |
margin: 20px 0; | |
} | |
.input-group { | |
background: rgba(255, 255, 255, 0.05); | |
padding: 15px; | |
border-radius: 10px; | |
} | |
.input-group input { | |
width: 90%; | |
padding: 12px; | |
border-radius: 8px; | |
border: 1px solid #444; | |
background: #333; | |
color: white; | |
transition: all 0.3s ease; | |
} | |
.input-group input:focus { | |
border-color: #4caf50; | |
outline: none; | |
} | |
button { | |
background: linear-gradient(45deg, #4caf50, #45a049); | |
color: white; | |
padding: 15px 30px; | |
border: none; | |
border-radius: 8px; | |
cursor: pointer; | |
font-size: 1.1em; | |
transition: transform 0.2s ease; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
gap: 10px; | |
} | |
button:disabled { | |
opacity: 0.7; | |
cursor: wait; | |
} | |
button:hover { | |
transform: translateY(-2px); | |
} | |
.audio-container { | |
background: rgba(51, 51, 51, 0.8); | |
border-radius: 15px; | |
padding: 20px; | |
margin-top: 30px; | |
} | |
.audio-container h3 { | |
margin: 0; | |
display: inline-block; | |
margin-right: 20px; | |
vertical-align: middle; | |
} | |
.audio-container audio { | |
vertical-align: middle; | |
flex: 1; | |
} | |
.audio-header { | |
display: flex; | |
align-items: center; | |
gap: 20px; | |
} | |
.progress-steps { | |
display: flex; | |
justify-content: space-between; | |
margin: 40px 0; | |
position: relative; | |
} | |
.step { | |
text-align: center; | |
flex: 1; | |
position: relative; | |
} | |
.step-number { | |
width: 30px; | |
height: 30px; | |
background: #333; | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
margin: 0 auto 10px; | |
} | |
.step.active .step-number { | |
background: #4caf50; | |
} | |
@media (max-width: 768px) { | |
.hero h1 { | |
font-size: 2em; | |
} | |
.container { | |
margin-top: -30px; | |
} | |
.features { | |
grid-template-columns: 1fr; | |
} | |
} | |
.loader { | |
display: none; | |
text-align: center; | |
padding: 20px; | |
} | |
.spinner { | |
width: 50px; | |
height: 50px; | |
border: 5px solid #f3f3f3; | |
border-top: 5px solid #4caf50; | |
border-radius: 50%; | |
animation: spin 1s linear infinite; | |
margin: 0 auto 15px; | |
} | |
@keyframes spin { | |
0% { | |
transform: rotate(0deg); | |
} | |
100% { | |
transform: rotate(360deg); | |
} | |
} | |
.audio-container { | |
display: none; | |
} | |
.segments-container { | |
margin-top: 30px; | |
padding: 20px; | |
background: rgba(51, 51, 51, 0.8); | |
border-radius: 15px; | |
} | |
.segment { | |
display: flex; | |
flex-direction: column; | |
gap: 15px; | |
padding: 20px; | |
margin: 10px 0; | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: 8px; | |
} | |
.segment-info { | |
width: 100%; | |
} | |
.segment-header { | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
margin-bottom: 8px; | |
} | |
.segment-speaker { | |
font-weight: bold; | |
color: #4caf50; | |
} | |
.segment-text { | |
color: #ccc; | |
line-height: 1.5; | |
position: relative; | |
/* white-space: pre-wrap; */ | |
} | |
.segment-text-content { | |
white-space: pre-wrap; | |
} | |
.segment-text textarea { | |
width: 97.5%; | |
min-height: 100px; | |
background: rgba(0, 0, 0, 0.3); | |
border: 1px solid #444; | |
border-radius: 4px; | |
color: #fff; | |
padding: 10px; | |
font-family: inherit; | |
font-size: inherit; | |
line-height: inherit; | |
resize: vertical; | |
} | |
.edit-controls { | |
display: flex; | |
gap: 10px; | |
} | |
.edit-btn, | |
.save-btn, | |
.cancel-btn { | |
padding: 5px 10px; | |
border-radius: 4px; | |
cursor: pointer; | |
font-size: 0.9em; | |
display: flex; | |
align-items: center; | |
gap: 5px; | |
} | |
.edit-btn { | |
background: transparent; | |
border: 1px solid #4caf50; | |
color: #4caf50; | |
padding: 5px 10px; | |
border-radius: 4px; | |
cursor: pointer; | |
font-size: 0.9em; | |
display: flex; | |
align-items: center; | |
gap: 5px; | |
} | |
.edit-btn:hover { | |
background: rgba(76, 175, 80, 0.1); | |
} | |
.save-btn { | |
background: #4caf50; | |
border: none; | |
color: white; | |
} | |
.cancel-btn { | |
background: #666; | |
border: none; | |
color: white; | |
} | |
.segment audio { | |
flex-grow: 1; | |
min-width: 200px; | |
} | |
.regenerate-btn { | |
padding: 8px 15px; | |
background: #4caf50; | |
border: none; | |
border-radius: 4px; | |
color: white; | |
cursor: pointer; | |
} | |
.regenerate-btn:hover { | |
background: #45a049; | |
} | |
.segments-summary { | |
font-size: 1.2em; | |
font-weight: bold; | |
cursor: pointer; | |
padding: 10px 0; | |
user-select: none; | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
} | |
.segments-summary::-webkit-details-marker { | |
display: none; | |
} | |
.segments-summary i { | |
transition: transform 0.3s ease; | |
} | |
details[open] .segments-summary i { | |
transform: rotate(90deg); | |
} | |
.segment-count { | |
font-size: 0.8em; | |
color: #888; | |
margin-left: auto; | |
} | |
#segments-list { | |
margin-top: 20px; | |
} | |
.regenerate-btn { | |
display: flex; | |
align-items: center; | |
gap: 5px; | |
min-width: 120px; | |
justify-content: center; | |
} | |
.regenerate-btn:disabled { | |
opacity: 0.7; | |
cursor: not-allowed; | |
} | |
.regenerate-btn i { | |
font-size: 14px; | |
} | |
@keyframes spin { | |
0% { | |
transform: rotate(0deg); | |
} | |
100% { | |
transform: rotate(360deg); | |
} | |
} | |
.fa-spin { | |
animation: spin 1s linear infinite; | |
} | |
.segment-controls { | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
} | |
.segment-controls audio { | |
flex: 1; | |
} | |
.segment-controls .regenerate-btn { | |
flex-shrink: 0; | |
} | |
form button[type="submit"] { | |
width: 100%; | |
margin-top: 20px; | |
} | |
.upload-section button { | |
margin: 0 auto; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
width: auto; | |
} | |
.login-container { | |
height: 100vh; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%); | |
} | |
.login-card { | |
background: rgba(36, 36, 36, 0.95); | |
padding: 30px; | |
border-radius: 15px; | |
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); | |
backdrop-filter: blur(10px); | |
width: 100%; | |
max-width: 400px; | |
} | |
.login-card h2 { | |
text-align: center; | |
color: #4caf50; | |
margin-bottom: 30px; | |
} | |
.login-form { | |
display: flex; | |
flex-direction: column; | |
gap: 20px; | |
} | |
.login-form .input-group { | |
display: flex; | |
flex-direction: column; | |
gap: 8px; | |
} | |
.login-form label { | |
color: #ffffff; | |
} | |
.login-form input { | |
padding: 12px; | |
border-radius: 8px; | |
border: 1px solid #444; | |
background: #333; | |
color: white; | |
transition: all 0.3s ease; | |
} | |
.login-form input:focus { | |
border-color: #4caf50; | |
outline: none; | |
} | |
.login-form button { | |
background: linear-gradient(45deg, #4caf50, #45a049); | |
color: white; | |
padding: 15px; | |
border: none; | |
border-radius: 8px; | |
cursor: pointer; | |
font-size: 1.1em; | |
transition: transform 0.2s ease; | |
} | |
.login-form button:hover { | |
transform: translateY(-2px); | |
} | |