:root{--primary:#2563eb;--primary-hover:#1d4ed8;--bg:#0f172a;--surface:#1e293b;--surface-hover:#334155;--border:#334155;--text:#f1f5f9;--text-muted:#94a3b8;--success:#22c55e;--error:#ef4444;--warning:#f59e0b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh}#app{flex-direction:column;max-width:800px;min-height:100vh;margin:0 auto;padding:24px;display:flex}.header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:32px;padding:16px 0;display:flex}.header h1{color:var(--text);font-size:20px;font-weight:600}.btn{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:background .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-hover)}.btn-sm{padding:6px 12px;font-size:13px}.btn-danger{background:var(--error);color:#fff}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:24px}.card h2{color:var(--text);margin-bottom:16px;font-size:16px;font-weight:600}.form-group{margin-bottom:16px}.form-group label{color:var(--text-muted);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group input,.form-group select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary)}.progress-bar{background:var(--bg);border-radius:4px;width:100%;height:8px;margin:12px 0;overflow:hidden}.progress-bar-fill{background:var(--primary);border-radius:4px;height:100%;transition:width .5s}.status-badge{border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.status-pending{color:var(--warning);background:#f59e0b26}.status-downloading,.status-detecting_audio,.status-trimming,.status-uploading{color:var(--primary);background:#2563eb26}.status-completed{color:var(--success);background:#22c55e26}.status-failed{color:var(--error);background:#ef444426}.result-box{background:#22c55e1a;border:1px solid #22c55e4d;border-radius:8px;align-items:center;gap:12px;margin-top:12px;padding:16px;display:flex}.result-box a{color:var(--success);word-break:break-all;font-weight:500;text-decoration:none}.result-box a:hover{text-decoration:underline}.error-box{color:var(--error);background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;margin-top:12px;padding:16px;font-size:14px}.recording-list{list-style:none}.recording-item{border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;transition:background .2s;display:flex}.recording-item:hover{background:var(--surface-hover)}.recording-item.selected{border-color:var(--primary);background:#2563eb1a}.recording-info{flex:1}.recording-info .topic{color:var(--text);font-size:14px;font-weight:500}.recording-info .meta{color:var(--text-muted);margin-top:4px;font-size:12px}.login-container{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;display:flex}.login-container h1{font-size:28px;font-weight:700}.login-container p{color:var(--text-muted);font-size:14px}.google-btn{color:#333;cursor:pointer;background:#fff;border:none;border-radius:8px;align-items:center;gap:10px;padding:12px 24px;font-size:15px;font-weight:500;transition:box-shadow .2s;display:flex}.google-btn:hover{box-shadow:0 4px 12px #0000004d}.spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}
