:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid 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}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}:root{--primary-color: #6366f1;--primary-light: #818cf8;--secondary-color: #4f46e5;--accent-color: #a78bfa;--dark-bg: #0f172a;--card-bg: rgba(15, 23, 42, .7);--text-primary: #f8fafc;--text-secondary: #94a3b8;--border-radius: 16px;--box-shadow: 0 10px 25px rgba(99, 102, 241, .1);--glass-effect: rgba(15, 23, 42, .7);--transition: all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;color:var(--text-primary);background:var(--dark-bg);background-image:radial-gradient(circle at 10% 20%,rgba(99,102,241,.1) 0%,transparent 20%),radial-gradient(circle at 90% 70%,rgba(167,139,250,.1) 0%,transparent 25%),linear-gradient(135deg,var(--dark-bg) 0%,#1e293b 100%);min-height:100vh;overflow-x:hidden}.App{min-height:100vh;display:flex;flex-direction:column}.App-header{background:#0f172acc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;color:#fff;box-shadow:0 2px 10px #0003;border-bottom:1px solid rgba(255,255,255,.1)}.App-header h1{font-size:1.8rem;font-weight:600;margin-bottom:0;text-shadow:0 2px 4px rgba(0,0,0,.2)}.auth-controls{display:flex;justify-content:flex-end;margin-bottom:1rem;gap:1rem;align-items:center}.main-nav{display:flex;gap:.5rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.nav-item{padding:.75rem 1.5rem;background:var(--secondary-color);color:var(--text-primary);border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease}.nav-item:hover{background:var(--secondary-color-hover);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.nav-item.active{background:var(--primary-color);color:#fff;font-weight:600}.content-area{flex:1;min-height:0}.user-greeting{font-size:1rem;color:var(--text-secondary);font-weight:500}.login-button,.logout-button{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--border-radius);font-size:.9rem;cursor:pointer;transition:var(--transition);font-weight:500;letter-spacing:.5px}.login-button:hover,.logout-button:hover{transform:translateY(-1px);box-shadow:0 5px 15px #6366f14d}.App-main{flex:1;padding:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:30px 30px;z-index:-1}#root{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.app-container{background:var(--glass-effect);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:var(--border-radius);border:1px solid rgba(255,255,255,.1);box-shadow:var(--box-shadow);padding:2.5rem;max-width:1000px;width:100%;position:relative;overflow:hidden;transition:var(--transition);min-height:80vh;display:flex;flex-direction:column}.app-container:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at center,rgba(99,102,241,.1) 0%,transparent 70%);animation:rotate 20s linear infinite;z-index:-1}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}h1{color:var(--text-primary);text-align:center;margin-bottom:2.5rem;font-size:2.2rem;font-weight:700;letter-spacing:-.5px;position:relative;padding-bottom:.5rem;text-shadow:0 2px 4px rgba(0,0,0,.2)}h1:after{content:"";position:absolute;bottom:0;left:0;transform:none;width:100%;height:3px;background:linear-gradient(90deg,var(--primary-color),var(--accent-color));border-radius:3px}.upload-form{display:flex;flex-direction:column;gap:1.5rem}.tasks-container{background:#ffffff0d;padding:2rem;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.tasks-container h2{margin-top:0;margin-bottom:1.5rem;color:var(--text-primary);font-size:1.5rem}.tasks-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.9rem}.tasks-table th,.tasks-table td{padding:.75rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}.tasks-table th{background-color:#ffffff0d;color:var(--text-primary);font-weight:600}.tasks-table tr:hover{background-color:#ffffff08}.tasks-table td:first-child{font-family:monospace;font-size:.8rem;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tasks-table td:nth-child(2){max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-status{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500}.status-0{background-color:#ffa50033;color:orange}.status-1{background-color:#4caf5033;color:#4caf50}.status-2{background-color:#f4433633;color:#f44336}.status-3{background-color:#ffd70033;color:gold}.download-btn.small{padding:.35rem .75rem;font-size:.8rem}.no-action{color:var(--text-secondary)}.loading-message,.empty-message{text-align:center;padding:2rem;color:var(--text-secondary)}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem}input[type=file]:disabled{opacity:0;cursor:pointer}input[type=file]:disabled+.file-upload-label{opacity:1;color:var(--text-secondary);cursor:default}.preview-btn{display:inline-block;padding:1rem 1.75rem;background:linear-gradient(90deg,#f97316,#fb923c);color:#fff;text-decoration:none;border-radius:var(--border-radius);font-weight:600;transition:var(--transition);position:relative;overflow:hidden;z-index:1;letter-spacing:.5px}.preview-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transition:var(--transition);z-index:-1}.preview-btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px #f9731659}.preview-btn:hover:before{left:100%}.preview-btn.small{padding:.35rem .75rem;font-size:.8rem}@media (max-width: 640px){.tasks-cards{display:flex;flex-direction:column;gap:12px}.task-card{border:1px solid rgba(255,255,255,.12);background:#ffffff0f;border-radius:12px;padding:12px}.task-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.task-filename{font-weight:600;color:var(--text-primary);word-break:break-all;flex:1}.task-card-body{display:flex;flex-direction:column;gap:6px;margin-top:8px}.task-card-row{display:flex;gap:8px}.task-card-row .label{color:var(--text-secondary);min-width:5em}.task-card-row .value{color:var(--text-primary);word-break:break-word;white-space:normal}.task-card-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.download-btn.small{padding:8px 12px;font-size:14px}.download-btn.small.retry{background:#ef4444;border-color:#ef4444}.tasks-table{border:0}.tasks-table thead{display:none}.tasks-table tr{display:block;margin-bottom:1rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px}.tasks-table td{display:block;padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);white-space:normal;word-break:break-word}.tasks-table td:last-child{border-bottom:none}.tasks-table td:before{content:attr(data-label);display:block;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.tasks-table td[data-label=文件名],.tasks-table td[data-label=任务ID]{word-break:break-all}.pagination-controls{flex-wrap:wrap;gap:.5rem}.download-btn.small{padding:.4rem .8rem;font-size:.85rem}}.pagination-controls button{padding:.5rem 1rem;background:var(--secondary-color);color:var(--text-primary);border:none;border-radius:6px;cursor:pointer;transition:all .3s ease}.pagination-controls button:hover:not(:disabled){background:var(--secondary-color-hover)}.pagination-controls button:disabled{opacity:.5;cursor:not-allowed}.pagination-controls span{color:var(--text-primary);font-size:.9rem}.form-group{display:flex;flex-direction:column;gap:.75rem}label{font-weight:600;color:#fff!important;font-size:1rem;letter-spacing:normal;text-shadow:0 1px 2px rgba(0,0,0,.3);display:block;padding:.5rem 0;position:relative;z-index:1}.file-upload-container{position:relative;padding:3rem 1.5rem;border:2px dashed rgba(255,255,255,.3);border-radius:var(--border-radius);background:#ffffff0d;cursor:pointer;transition:var(--transition);min-height:120px;display:flex;align-items:center;justify-content:center;overflow:hidden}.file-upload-container:hover{border-color:#ffffff80;background:#ffffff1a}input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;border:none;background:transparent}.file-upload-label{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:1.1rem;color:var(--text-secondary);font-weight:600;text-align:center;padding:0 1rem;gap:.5rem;line-height:1.4;text-shadow:0 1px 2px rgba(0,0,0,.2);pointer-events:none;z-index:1}input[type=file]:disabled{opacity:.6;cursor:not-allowed}input[type=range]{width:100%;height:6px;background:#ffffff1a;border-radius:3px;outline:none;-webkit-appearance:none;position:relative}input[type=range]:before{content:"";position:absolute;left:0;top:0;height:100%;width:calc((var(--value, 0) + 12) / 24 * 100%);background:linear-gradient(90deg,var(--primary-color),var(--accent-color));border-radius:3px;pointer-events:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;cursor:pointer;transition:var(--transition);box-shadow:0 0 0 3px #6366f133;position:relative;z-index:1}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 0 0 5px #6366f14d}input[type=range]:disabled{opacity:.6;cursor:not-allowed}.pitch-value{text-align:center;font-weight:600;color:var(--accent-color);margin-top:.5rem;font-size:1.1rem;letter-spacing:.5px}.process-btn{padding:1.1rem 2rem;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));color:#fff;border:none;border-radius:var(--border-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition);position:relative;overflow:hidden;z-index:1;letter-spacing:.5px}.process-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:var(--transition);z-index:-1}.process-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 15px 30px #6366f14d}.process-btn:hover:not(:disabled):before{left:100%}.process-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 8px 20px #6366f14d}.process-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.progress-container,.upload-progress-container{margin-top:2rem;background:#ffffff08;padding:1.25rem;border-radius:var(--border-radius);border:1px solid rgba(255,255,255,.05)}.progress-label,.upload-progress-label{font-weight:600;margin-bottom:1rem;color:var(--text-secondary);font-size:.9rem;letter-spacing:.5px}.progress-bar{width:100%;height:8px;background:#ffffff14;border-radius:4px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--accent-color));transition:width .5s cubic-bezier(.4,0,.2,1);border-radius:4px;position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}.upload-progress-fill{height:100%;background:linear-gradient(90deg,var(--text-secondary),#64748b);transition:width .5s cubic-bezier(.4,0,.2,1);border-radius:4px;position:relative;overflow:hidden}.upload-progress-fill:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-text{text-align:center;font-weight:600;color:var(--text-primary);margin-top:.75rem;font-size:1.1rem}.progress-message{text-align:center;color:var(--text-secondary);margin-top:.5rem;font-size:.9rem;font-style:italic}.error-message{background:#ef44441a;color:#fca5a5;padding:1.25rem;border-radius:var(--border-radius);margin-top:2rem;border-left:3px solid #ef4444;position:relative;animation:slideIn .3s ease}.result-container{margin-top:2rem;padding:1.75rem;background:#22c55e1a;border-radius:var(--border-radius);border-left:3px solid #22c55e;position:relative;animation:slideIn .5s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.success-message{color:#4ade80;font-weight:700;margin-bottom:1.25rem;font-size:1.1rem;letter-spacing:.5px}.result-info{margin-bottom:1.75rem;color:var(--text-secondary)}.result-info p{margin-bottom:.75rem;font-size:.95rem;letter-spacing:.3px}.download-btn{display:inline-block;padding:1rem 1.75rem;background:linear-gradient(90deg,#22c55e,#16a34a);color:#fff;text-decoration:none;border-radius:var(--border-radius);font-weight:600;transition:var(--transition);position:relative;overflow:hidden;z-index:1;letter-spacing:.5px}.download-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:var(--transition);z-index:-1}.download-btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px #22c55e4d}.download-btn:hover:before{left:100%}.download-btn.retry{background:linear-gradient(90deg,#eab308,#d97706)!important;color:#fff}.download-btn.retry:hover{background:linear-gradient(90deg,#d97706,#b45309)!important;box-shadow:0 10px 25px #b4530959!important}.file-info{font-size:.9rem;color:var(--text-secondary);margin-top:.75rem;text-align:center}@media (max-width: 600px){.app-container{padding:2rem;margin:1rem}h1{font-size:1.8rem}.process-btn{padding:1rem 1.5rem}input[type=file]{padding:1.25rem}}.copyright-info{margin-top:2rem;text-align:center;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);color:var(--text-secondary)}.copyright-info p{margin:.25rem 0;font-size:.9rem}.copyright-subtitle{font-size:.8rem;opacity:.8}.toast{position:fixed;top:50%;left:50%;margin:0;padding:12px 16px;background:#1f2937e6;color:#fff;border-radius:8px;box-shadow:0 10px 25px #00000040;font-weight:600;opacity:0;transform:translate(-50%,calc(-50% - 12px));transition:opacity .25s ease,transform .25s ease;z-index:1000;max-width:520px;text-align:center;pointer-events:none;display:inline-block}.toast:before{content:"";display:inline-block;width:6px;height:100%;border-radius:4px;margin-right:12px;vertical-align:middle;background:#60a5fa}.toast-show{opacity:1;transform:translate(-50%,-50%)}.toast-info{background:#3b82f6eb}.toast-success{background:#22c55eeb}.toast-error{background:#ef4444eb}.toast-info:before{background:#3b82f6}.toast-success:before{background:#22c55e}.toast-error:before{background:#ef4444}.auth-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.auth-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;width:90%;max-width:400px;padding:24px;position:relative}.auth-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.auth-header h2{margin:0;color:#333;font-size:20px}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;justify-content:center;align-items:center;border-radius:4px;transition:background-color .2s}.close-button:hover{background-color:#f0f0f0}.auth-error{background-color:#fef2f2;color:#b91c1c;padding:10px;border-radius:4px;margin-bottom:16px;font-size:14px}.auth-form{display:flex;flex-direction:column}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#333;font-size:14px}.form-group input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled{background-color:#f9fafb;cursor:not-allowed}.auth-button{background-color:#3b82f6;color:#fff;border:none;padding:12px;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:8px}.auth-button:hover:not(:disabled){background-color:#2563eb}.auth-button:disabled{background-color:#93c5fd;cursor:not-allowed}.auth-switch{margin-top:20px;text-align:center;font-size:14px;color:#666}.switch-button{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:14px;font-weight:500;padding:0 4px;transition:color .2s}.switch-button:hover:not(:disabled){color:#2563eb;text-decoration:underline}.switch-button:disabled{color:#93c5fd;cursor:not-allowed}@media (max-width: 480px){.auth-container{width:95%;padding:20px}.auth-header h2{font-size:18px}.form-group input,.auth-button{font-size:14px}}.auth-container .form-group label{color:#000!important}.auth-container .form-group input{color:#000;background-color:#fff}.auth-container .form-group input::placeholder{color:#666}
