*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0d1117;--color-surface: #161b27;--color-surface-raised: #1e2535;--color-border: #2a3347;--color-purple: #7c3aed;--color-purple-light: #a78bfa;--color-purple-glow: rgba(124, 58, 237, .15);--color-text: #e2e8f0;--color-text-muted: #8892a4;--color-text-faint: #4a5568;--font-sans: "Outfit", system-ui, sans-serif;--font-display: "Syne", system-ui, sans-serif;--font-mono: "DM Mono", "Fira Code", monospace;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .4);--navbar-height: 56px;--sidebar-width: 260px}html,body{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--color-purple-light);text-decoration:none}a:hover{text-decoration:underline}#root{height:100%}.app{display:flex;flex-direction:column;height:100%;min-height:100vh}.navbar{height:var(--navbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:100;flex-shrink:0}.navbar-brand{display:flex;align-items:center;gap:10px}.navbar-logo{color:var(--color-purple);font-size:20px;line-height:1}.navbar-name{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--color-text);letter-spacing:-.5px}.navbar-links{display:flex;gap:4px}.navbar-link{font-size:14px;font-weight:500;color:var(--color-text-muted);padding:6px 12px;border-radius:var(--radius);transition:background .15s,color .15s}.navbar-link:hover{background:var(--color-surface-raised);color:var(--color-text);text-decoration:none}.app-body{display:flex;flex:1;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;padding:20px 16px;gap:16px}.sidebar-title{font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-faint)}.sidebar-empty{font-size:13px;color:var(--color-text-faint);text-align:center;margin-top:32px;font-style:italic}.main-content{flex:1;overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:40px 24px}.upload-placeholder{text-align:center;padding:64px 32px;border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);max-width:520px;width:100%;transition:border-color .2s,background .2s}.upload-placeholder:hover{border-color:var(--color-purple);background:var(--color-purple-glow)}.upload-hint{color:var(--color-text-muted);font-size:15px}.job-list{list-style:none;display:flex;flex-direction:column;gap:8px}.job-row{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px;padding:10px 12px}.job-row-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.job-filename{color:var(--color-text);font-size:12px;font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.job-time{color:var(--color-text-faint);font-size:11px}.job-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:11px;font-weight:600;gap:4px;padding:2px 6px;text-transform:uppercase;white-space:nowrap}.job-badge--pending{background:#64748b33;color:#94a3b8}.job-badge--processing{background:#3b82f626;color:#60a5fa}.job-badge--completed{background:#22c55e26;color:#4ade80}.job-badge--failed{background:#ef444426;color:#f87171}.spinner{animation:spin .8s linear infinite;border:2px solid rgba(96,165,250,.3);border-top-color:#60a5fa;border-radius:50%;display:inline-block;height:10px;width:10px}@keyframes spin{to{transform:rotate(360deg)}}.progress-track{background:var(--color-border);border-radius:99px;height:4px;overflow:hidden}.progress-fill{background:var(--color-purple);border-radius:99px;height:100%;transition:width .4s ease}.upload-zone{width:100%;max-width:560px;display:flex;flex-direction:column;gap:16px}.upload-tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border);padding-bottom:0}.upload-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:500;padding:8px 16px;margin-bottom:-1px;transition:color .15s,border-color .15s}.upload-tab.active,.upload-tab[aria-selected=true]{color:var(--color-purple-light);border-bottom-color:var(--color-purple)}.upload-tab:hover:not(.active){color:var(--color-text)}.drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:180px;padding:32px 24px;text-align:center;transition:border-color .2s,background .2s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--color-purple);background:var(--color-purple-glow)}.drop-zone-primary{color:var(--color-text);font-size:15px;font-weight:500}.drop-zone-secondary{color:var(--color-text-muted);font-size:13px}.drop-zone-filename{color:var(--color-purple-light);font-family:var(--font-mono);font-size:14px;word-break:break-all}.file-input-hidden{display:none}.url-panel{display:flex;flex-direction:column;gap:8px}.url-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-family:var(--font-sans);font-size:14px;padding:10px 14px;outline:none;transition:border-color .15s;width:100%}.url-input:focus{border-color:var(--color-purple)}.url-input::placeholder{color:var(--color-text-faint)}.upload-warning{background:#eab3081a;border:1px solid rgba(234,179,8,.3);border-radius:var(--radius);color:#fbbf24;font-size:13px;padding:8px 12px}.upload-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius);color:#f87171;font-size:13px;padding:8px 12px}.btn-transcribe{background:var(--color-purple);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;font-family:var(--font-sans);font-size:15px;font-weight:600;padding:12px 24px;transition:background .15s,opacity .15s}.btn-transcribe:hover:not(:disabled){background:#6d28d9}.btn-transcribe:disabled{cursor:not-allowed;opacity:.4}.btn-secondary{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);cursor:pointer;font-family:var(--font-sans);font-size:14px;margin-top:12px;padding:8px 16px;transition:background .15s}.btn-secondary:hover{background:var(--color-border)}.job-created{text-align:center}@media(max-width:640px){.app-body{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--color-border);max-height:200px}:root{--sidebar-width: 100%}}
