*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a26;--bg-elevated: #22223a;--border: #2a2a40;--border-focus: #6366f1;--text-primary: #e8e8f0;--text-secondary: #9898b0;--text-muted: #5a5a78;--accent: #6366f1;--accent-hover: #818cf8;--accent-glow: rgba(99, 102, 241, .25);--success: #22c55e;--error: #ef4444;--warning: #f59e0b;--radius: 12px;--radius-sm: 8px;--transition: .15s ease}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}input,textarea,button{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none;color:inherit}a{color:var(--accent);text-decoration:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.layout{max-width:720px;margin:0 auto;padding:2rem 1.5rem;width:100%;flex:1;display:flex;flex-direction:column;gap:2rem}.section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.section-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:1rem}.header{text-align:center;padding:1rem 0}.header h1{font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,var(--accent) 0%,#a78bfa 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header p{color:var(--text-secondary);font-size:.95rem;margin-top:.25rem}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:var(--accent-glow)}.upload-zone.has-file{border-color:var(--success);border-style:solid;background:#22c55e0d}.upload-zone-label{color:var(--text-secondary);font-size:.9rem}.upload-zone-label strong{color:var(--accent)}.upload-zone-hint{color:var(--text-muted);font-size:.75rem;margin-top:.5rem}.upload-filename{color:var(--text-primary);font-weight:500;font-size:.9rem}.upload-meta{color:var(--text-muted);font-size:.75rem;margin-top:.25rem}.waveform-container{margin-top:1rem;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-tertiary);padding:.5rem}.waveform-controls{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.waveform-btn{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;transition:background var(--transition)}.waveform-btn:hover{background:var(--accent-hover)}.waveform-time{color:var(--text-muted);font-size:.75rem;font-variant-numeric:tabular-nums}.text-field{width:100%;margin-top:.75rem}.text-field label{display:block;font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:.35rem}.text-field textarea{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;color:var(--text-primary);resize:vertical;min-height:60px;transition:border-color var(--transition)}.text-field textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.text-field .char-count{text-align:right;font-size:.7rem;color:var(--text-muted);margin-top:.25rem}.text-field .char-count.over{color:var(--error)}.synthesize-btn{width:100%;padding:.875rem 1.5rem;background:linear-gradient(135deg,var(--accent) 0%,#7c3aed 100%);color:#fff;font-weight:600;font-size:1rem;border-radius:var(--radius);transition:opacity var(--transition),transform var(--transition);position:relative;overflow:hidden}.synthesize-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.synthesize-btn:active:not(:disabled){transform:translateY(0)}.synthesize-btn:disabled{opacity:.4;cursor:not-allowed}.synthesize-btn.loading{pointer-events:none}.progress-container{margin-top:1rem}.progress-bar-track{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent) 0%,#a78bfa 100%);border-radius:3px;transition:width .3s ease}.progress-label{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-muted);margin-top:.35rem}.status-text{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem}.status-text.error{color:var(--error)}.status-text.success{color:var(--success)}.result-section{text-align:center}.result-waveform{margin:1rem 0;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-tertiary);padding:.5rem}.result-controls{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:.75rem}.download-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.85rem;font-weight:500;transition:border-color var(--transition),background var(--transition)}.download-btn:hover{border-color:var(--accent);background:var(--accent-glow)}.new-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.85rem;transition:border-color var(--transition),color var(--transition)}.new-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.footer{text-align:center;padding:1rem 0;font-size:.75rem;color:var(--text-muted)}.footer .rate-info{margin-top:.25rem}@media(max-width:600px){.layout{padding:1rem;gap:1.25rem}.section{padding:1rem}.header h1{font-size:1.35rem}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem;vertical-align:middle}
