@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; }