.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5;padding:20px}.login-card{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #0000001a;padding:40px;width:100%;max-width:450px}.login-card h1{color:#333;margin-bottom:10px;font-size:24px;text-align:center}.login-card h2{color:#555;margin-bottom:30px;font-size:18px;text-align:center}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#555}.form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:16px;transition:border-color .3s}.form-group input:focus{border-color:#4a90e2;outline:none}.login-button{width:100%;padding:12px;background-color:#4a90e2;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .3s}.login-button:hover{background-color:#3a7bc8}.login-button:disabled{background-color:#a0c0e8;cursor:not-allowed}.error-message{background-color:#ffebee;color:#d32f2f;padding:12px;border-radius:4px;margin-bottom:20px;font-size:14px}.dashboard-container{min-height:100vh;background-color:#f5f5f5;display:flex;flex-direction:column}.dashboard-header{background-color:#fff;box-shadow:0 2px 4px #0000001a;padding:16px 24px;display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{font-size:20px;color:#333;margin:0}.logout-button{background-color:transparent;color:#d32f2f;border:1px solid #d32f2f;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500;transition:all .3s}.logout-button:hover{background-color:#d32f2f;color:#fff}.dashboard-content{flex:1;padding:24px;display:flex;flex-direction:column;gap:24px;max-width:1200px;margin:0 auto;width:100%}.recording-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:24px}.recording-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:15px}.button-group{display:flex;gap:10px;align-items:center}.recording-status{display:flex;align-items:center;margin-top:10px}.recording-status:before{content:"";display:inline-block;width:12px;height:12px;border-radius:50%;background-color:#f44336;margin-right:8px;animation:pulse 2s infinite}.recording-indicator{display:flex;align-items:center;color:#d32f2f;font-weight:500}.connecting-indicator{display:flex;align-items:center;color:#ff9800;font-weight:500}.stopping-indicator{display:flex;align-items:center;color:#9c27b0;font-weight:500}.connecting-dot{width:12px;height:12px;background-color:#ff9800;border-radius:50%;margin-right:8px;animation:pulse 1.5s infinite}.stopping-dot{width:12px;height:12px;background-color:#9c27b0;border-radius:50%;margin-right:8px;animation:pulse 1.5s infinite}.recording-dot{width:12px;height:12px;background-color:#d32f2f;border-radius:50%;margin-right:8px;animation:pulse 1.5s infinite}@keyframes pulse{0%{box-shadow:0 0 #f4433666}70%{box-shadow:0 0 0 10px #f4433600}to{box-shadow:0 0 #f4433600}}.record-button{padding:12px 24px;border-radius:4px;font-weight:500;cursor:pointer;transition:all .3s ease;border:none;font-size:16px}.record-button.start{background-color:#4caf50}.record-button.stop{background-color:#f44336}.record-button.prepare{background-color:#2196f3}.record-button.preparing,.record-button.stopping{background-color:#9e9e9e}.recording-status.success{color:#4caf50;font-weight:700}.force-stop-button{padding:12px 16px;border-radius:4px;font-weight:500;cursor:pointer;transition:all .3s;border:none;font-size:14px;background-color:#9c27b0;color:#fff}.force-stop-button:hover{background-color:#7b1fa2}.error-message{background-color:#ffebee;color:#d32f2f;padding:16px;border-radius:4px;margin-bottom:20px;font-size:14px;border-left:4px solid #d32f2f}.error-message h3{margin-top:0;margin-bottom:8px;font-size:16px}.error-message p{margin-bottom:12px}.error-help{background-color:#f8f9fa;padding:12px;border-radius:4px;margin-top:12px}.error-help p{font-weight:500;margin-bottom:8px}.error-help ul{margin:0;padding-left:20px}.error-help li{margin-bottom:4px}.audio-playback{margin-top:24px;padding-top:24px;border-top:1px solid #eee}.audio-playback h3{margin-top:0;margin-bottom:16px;color:#333}.audio-format{margin-bottom:12px;font-size:14px;color:#666;background-color:#f5f5f5;padding:6px 10px;border-radius:4px;display:inline-block}.audio-playback audio{width:100%;margin-bottom:16px}.download-button{background-color:#4a90e2;color:#fff;border:none;padding:10px 16px;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .3s}.download-button:hover{background-color:#3a7bc8}.transcript-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:24px}.transcript-section h2{margin-top:0;margin-bottom:16px;color:#333;font-size:18px}.transcripts-list{max-height:300px;overflow-y:auto;border:1px solid #eee;border-radius:4px}.transcript-item{padding:16px;border-bottom:1px solid #eee;font-size:14px;line-height:1.5;transition:background-color .2s}.transcript-item:hover{background-color:#f9f9f9}.transcript-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.transcript-timestamp{color:#888;font-size:12px}.transcript-status{font-size:11px;padding:2px 6px;border-radius:10px;font-weight:500}.transcript-status.final{background-color:#e8f5e9;color:#2e7d32}.transcript-status.interim{background-color:#fff3e0;color:#ef6c00}.transcript-content{display:flex;flex-direction:column;gap:8px}.transcript-text{font-size:16px;font-weight:500;color:#333}.transcript-words{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.transcript-word{display:inline-block;padding:2px 4px;background-color:#f1f8ff;border-radius:4px;font-size:12px;color:#0366d6;cursor:help}.transcript-alternatives{margin-top:8px;font-size:13px}.transcript-alternatives summary{color:#666;cursor:pointer;user-select:none}.transcript-alternatives ul{margin-top:8px;padding-left:20px;color:#666}.transcript-alternatives li{margin-bottom:4px}.transcript-item pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:monospace;font-size:13px}.no-transcripts{padding:24px;text-align:center;color:#888;font-size:14px;background-color:#f9f9f9;border-radius:4px}.recording-warning{margin-top:16px;padding:12px;background-color:#fff3e0;border-left:4px solid #ff9800;border-radius:4px;font-size:14px;color:#e65100}.recording-warning p{margin:0}.recording-warning strong{font-weight:600}.audio-visualizer-container{width:100%;height:100px;margin:20px 0;background-color:#0000000d;border-radius:8px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a;position:relative}.audio-visualizer{width:100%;height:100%;display:block}.audio-visualizer-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.placeholder-line{width:90%;height:2px;background-color:#ddd;position:relative}.placeholder-line:before{content:"";position:absolute;top:-1px;left:10%;width:80%;height:4px;background:linear-gradient(90deg,transparent 0%,#ddd 20%,#ddd 30%,transparent 40%,transparent 45%,#ddd 50%,#ddd 60%,transparent 70%,transparent 75%,#ddd 80%,transparent 100%);opacity:.5}@media (max-width: 768px){.recording-controls{flex-direction:column;gap:16px}.recording-status{width:100%;text-align:center;margin-bottom:8px}.record-button{width:100%}.audio-visualizer-container{height:80px}}.download-section{margin-top:15px;display:flex;flex-direction:column;gap:15px}.format-selection{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.format-selection label{font-weight:500;margin-right:5px}.format-selection select{padding:8px 12px;border-radius:4px;border:1px solid #ccc;background-color:#fff;font-size:14px;min-width:150px;cursor:pointer;transition:border-color .3s}.format-selection select:hover{border-color:#2196f3}.format-selection select:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f333}.format-selection select:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.7}.format-warning{color:#ff9800;font-size:13px;margin-top:5px;font-style:italic}.format-warning a{color:#2196f3;text-decoration:none;margin-left:5px;font-weight:500}.format-warning a:hover{text-decoration:underline}.conversion-progress{margin:10px 0}.progress-bar{width:100%;height:10px;background-color:#e0e0e0;border-radius:5px;overflow:hidden}.progress-fill{height:100%;background-color:#4caf50;border-radius:5px;transition:width .3s ease}.progress-text{font-size:14px;color:#555;margin-top:5px;text-align:center}.audio-playback{background-color:#f9f9f9;border-radius:8px;padding:20px;margin-top:20px;box-shadow:0 2px 4px #0000000d}.audio-playback h3{margin-top:0;color:#333;font-size:18px}.audio-format{margin-bottom:15px;color:#666;font-size:14px}.audio-playback audio{width:100%;margin-bottom:15px}@media (max-width: 768px){.format-selection{flex-direction:column;align-items:flex-start}.format-selection select{width:100%}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;color:#333}button{cursor:pointer}a{color:inherit;text-decoration:none}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;height:100%}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
