Jofthomas's picture
Upload 4 files
89223f6 verified
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');
body, .gradio-container {
background-color: #FFFAEB !important;
background-image:
linear-gradient(#E9E2CB 1px, transparent 1px),
linear-gradient(90deg, #E9E2CB 1px, transparent 1px) !important;
background-size: 40px 40px !important;
font-family: 'Inter', sans-serif !important;
}
@keyframes pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.5; transform: scale(0.8); }
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-8px); }
}
.header-card {
background: linear-gradient(135deg, #FFFAEB 0%, #FFF0C3 100%);
border: 2px solid #E9E2CB;
border-top: 4px solid #FF8205;
padding: 2rem;
margin-bottom: 1.5rem;
box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}
.header-title {
font-size: 2rem;
font-weight: 700;
color: #1E1E1E !important;
margin: 0 0 0.5rem 0;
letter-spacing: -0.02em;
display: flex;
align-items: center;
gap: 0.75rem;
}
.header-logo {
width: 40px;
height: 40px;
object-fit: contain;
}
.header-subtitle {
color: #444444 !important;
font-size: 1rem;
margin: 0;
}
.transcription-card {
background: #FFFAEB !important;
border: 2px solid #E9E2CB;
box-shadow: 0 8px 32px rgba(0,0,0,0.08);
overflow: hidden;
min-height: 350px;
}
.card-header {
background: rgba(255,255,255,0.6) !important;
border-bottom: 1px solid #E9E2CB;
padding: 0.75rem 1rem;
display: flex;
align-items: center;
justify-content: space-between;
}
.card-header-left {
display: flex;
align-items: center;
gap: 0.75rem;
}
.card-header-right {
display: flex;
align-items: center;
gap: 1rem;
}
.card-title {
font-size: 0.65rem;
font-weight: 700;
color: #1E1E1E !important;
text-transform: uppercase;
letter-spacing: 0.1em;
margin: 0;
}
.voxtral-icon {
width: 24px;
height: 24px;
object-fit: contain;
}
.wpm-badge {
display: inline-flex;
align-items: center;
gap: 0.4rem;
padding: 0.25rem 0.6rem;
font-size: 0.6rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
border-radius: 2px;
background: #FFF0C3;
color: #1E1E1E !important;
border: 1px solid #E9E2CB;
font-family: 'JetBrains Mono', monospace;
}
.status-badge {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.25rem 0.75rem;
font-size: 0.6rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
border-radius: 2px;
}
.status-ready {
background: #f5f5f5 !important;
color: #555555 !important;
border: 1px solid #E9E2CB;
}
.status-connecting, .status-warming {
background: rgba(255, 130, 5, 0.15) !important;
color: #CC6A04 !important;
border: 1px solid #FF8205;
}
.status-listening {
background: rgba(255, 130, 5, 0.2) !important;
color: #CC6A04 !important;
border: 1px solid #FF8205;
}
.status-timeout {
background: rgba(225, 5, 0, 0.1) !important;
color: #B30400 !important;
border: 1px solid #E10500;
}
.status-error {
background: rgba(225, 5, 0, 0.1) !important;
color: #B30400 !important;
border: 1px solid #E10500;
}
.status-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: currentColor !important;
}
.status-dot.animate {
animation: pulse 1.5s ease-in-out infinite;
}
.status-dot.fast {
animation: pulse 0.8s ease-in-out infinite;
}
.card-content {
padding: 1.5rem;
min-height: 250px;
position: relative;
background-color: #FFFAEB !important;
background-image:
linear-gradient(rgba(0,0,0,0.02) 1px, transparent 1px),
linear-gradient(90deg, rgba(0,0,0,0.02) 1px, transparent 1px);
background-size: 20px 20px;
}
.transcript-text {
font-family: 'JetBrains Mono', monospace !important;
font-size: 1.1rem !important;
line-height: 1.8 !important;
color: #000000 !important;
white-space: pre-wrap;
word-break: break-word;
}
.transcript-cursor {
display: inline-block;
width: 10px;
height: 20px;
background: #FF8205 !important;
margin-left: 4px;
vertical-align: middle;
animation: blink 1s step-end infinite;
}
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 200px;
}
.empty-dots {
display: flex;
gap: 6px;
margin-bottom: 1rem;
}
.empty-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: #FF8205 !important;
animation: bounce 1s ease-in-out infinite;
}
.empty-dot:nth-child(2) { animation-delay: 0.1s; }
.empty-dot:nth-child(3) { animation-delay: 0.2s; }
.empty-text {
font-family: 'JetBrains Mono', monospace !important;
font-size: 0.875rem !important;
color: #555555 !important;
font-style: italic;
}
.card-footer {
background: #fafafa !important;
border-top: 1px solid #E9E2CB;
padding: 0.5rem 1rem;
display: flex;
justify-content: space-between;
font-family: 'JetBrains Mono', monospace;
font-size: 0.65rem;
color: #555555 !important;
}
/* Audio component styling - preserve Gradio defaults */
#audio-input {
margin-top: 1rem;
}
#audio-input button {
color: inherit !important;
}
#audio-input .controls button {
background: var(--button-secondary-background-fill) !important;
color: var(--button-secondary-text-color) !important;
}
.clear-btn {
background: #E10500 !important;
color: #FFFFFF !important;
border: none !important;
padding: 0.75rem 1.5rem !important;
font-weight: 600 !important;
text-transform: uppercase !important;
letter-spacing: 0.05em !important;
font-size: 0.75rem !important;
cursor: pointer !important;
transition: all 0.2s !important;
border-radius: 0 !important;
margin-top: 1rem !important;
}
.clear-btn:hover {
background: #B30400 !important;
}
footer {
display: none !important;
}
.gradio-container .prose {
max-width: none !important;
}
.info-text {
font-family: 'JetBrains Mono', monospace !important;
font-size: 0.75rem !important;
color: #888888 !important;
font-style: italic;
text-align: center;
margin-top: 1rem;
}