:root{--bg: #09090f;--surface: #111118;--card: #17171f;--card-hover: #1e1e28;--border: #26263a;--border-light: #32324a;--accent: #7c6bfa;--accent-dim: #5a4ecf;--accent-glow: rgba(124, 107, 250, .18);--success: #22d48a;--success-bg: rgba(34, 212, 138, .1);--error: #ff5470;--error-bg: rgba(255, 84, 112, .1);--warning: #ffaa4a;--warning-bg: rgba(255, 170, 74, .1);--text: #eeeeff;--text-secondary:#8888aa;--text-muted: #4d4d66;--radius: 12px;--radius-sm: 8px;--radius-lg: 18px;--shadow: 0 4px 32px rgba(0, 0, 0, .5);--shadow-sm: 0 2px 12px rgba(0, 0, 0, .3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:#a898ff}input,button,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}.input{width:100%;padding:.65rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);transition:border-color .2s,box-shadow .2s;outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.4rem;border-radius:var(--radius-sm);border:none;font-weight:600;font-size:.95rem;transition:all .2s;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dim);box-shadow:0 4px 16px var(--accent-glow);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--border-light);color:var(--text);background:var(--card-hover)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem}.msg-success{padding:.8rem 1rem;background:var(--success-bg);border:1px solid rgba(34,212,138,.25);border-radius:var(--radius-sm);color:var(--success);font-size:.9rem}.msg-error{padding:.8rem 1rem;background:var(--error-bg);border:1px solid rgba(255,84,112,.25);border-radius:var(--radius-sm);color:var(--error);font-size:.9rem}.app{min-height:100vh;display:flex;flex-direction:column}@media (max-width: 600px){.card{padding:1.25rem}}.site-header[data-v-b564a1a1]{position:sticky;top:0;z-index:100;background:#09090fd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 1.5rem;height:58px;display:flex;align-items:center}.header-inner[data-v-b564a1a1]{width:100%;max-width:960px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo[data-v-b564a1a1]{display:flex;align-items:center;gap:.5rem;color:var(--text);font-weight:700;font-size:1.05rem;text-decoration:none}.logo-icon[data-v-b564a1a1]{font-size:1.2rem}.logo-text[data-v-b564a1a1]{letter-spacing:-.3px}.nav-auth[data-v-b564a1a1]{display:flex;align-items:center;gap:.75rem}.user-email[data-v-b564a1a1]{color:var(--text-secondary);font-size:.85rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-link[data-v-b564a1a1]{color:var(--text-secondary);font-size:.9rem;transition:color .2s}.nav-link[data-v-b564a1a1]:hover{color:var(--text)}.btn-sm[data-v-b564a1a1]{padding:.4rem .9rem;font-size:.85rem}.site-main[data-v-b564a1a1]{flex:1;padding:2rem 1.5rem}.auth-page[data-v-66a2672c]{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 58px);padding:1rem}.auth-card[data-v-66a2672c]{width:100%;max-width:420px}.auth-header[data-v-66a2672c]{text-align:center;margin-bottom:2rem}.auth-icon[data-v-66a2672c]{font-size:2.5rem;margin-bottom:.75rem}h1[data-v-66a2672c]{font-size:1.6rem;font-weight:700;letter-spacing:-.5px}.sub[data-v-66a2672c]{color:var(--text-secondary);font-size:.9rem;margin-top:.3rem}.field[data-v-66a2672c]{margin-bottom:1.1rem}.field label[data-v-66a2672c]{display:block;margin-bottom:.4rem;color:var(--text-secondary);font-size:.85rem;font-weight:500}.code-input[data-v-66a2672c]{letter-spacing:.4em;font-size:1.3rem;text-align:center}.submit-btn[data-v-66a2672c]{width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem}.auth-footer[data-v-66a2672c]{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.spinner[data-v-66a2672c]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-66a2672c .7s linear infinite}@keyframes spin-66a2672c{to{transform:rotate(360deg)}}.auth-page[data-v-55c1814e]{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 58px);padding:1rem}.auth-card[data-v-55c1814e]{width:100%;max-width:420px}.auth-header[data-v-55c1814e]{text-align:center;margin-bottom:2rem}.auth-icon[data-v-55c1814e]{font-size:2.5rem;margin-bottom:.75rem}h1[data-v-55c1814e]{font-size:1.6rem;font-weight:700;letter-spacing:-.5px}.sub[data-v-55c1814e]{color:var(--text-secondary);font-size:.9rem;margin-top:.3rem}.field[data-v-55c1814e]{margin-bottom:1.1rem}.field label[data-v-55c1814e]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.4rem;color:var(--text-secondary);font-size:.85rem;font-weight:500}.hint[data-v-55c1814e]{font-size:.75rem;color:var(--text-muted)}.strength-bar[data-v-55c1814e]{height:3px;background:var(--border);border-radius:2px;margin-top:.5rem;overflow:hidden}.strength-fill[data-v-55c1814e]{height:100%;border-radius:2px;transition:width .3s,background .3s}.strength-fill.weak[data-v-55c1814e]{background:var(--error)}.strength-fill.fair[data-v-55c1814e]{background:var(--warning)}.strength-fill.good[data-v-55c1814e]{background:#60d0ff}.strength-fill.strong[data-v-55c1814e]{background:var(--success)}.submit-btn[data-v-55c1814e]{width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem}.auth-footer[data-v-55c1814e]{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.spinner[data-v-55c1814e]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-55c1814e .7s linear infinite}@keyframes spin-55c1814e{to{transform:rotate(360deg)}}.dashboard[data-v-c1d9d684]{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.card-title[data-v-c1d9d684]{margin-bottom:1.25rem}.card-title h2[data-v-c1d9d684]{font-size:1.15rem;font-weight:700}.card-sub[data-v-c1d9d684]{color:var(--text-secondary);font-size:.85rem;margin-top:.25rem}.dropzone[data-v-c1d9d684]{border:2px dashed var(--border-light);border-radius:var(--radius);padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;-webkit-user-select:none;user-select:none}.dropzone[data-v-c1d9d684]:hover,.dropzone.dragover[data-v-c1d9d684]{border-color:var(--accent);background:var(--accent-glow)}.dropzone.uploading[data-v-c1d9d684]{cursor:default;border-style:solid;border-color:var(--accent)}.dz-icon[data-v-c1d9d684]{font-size:2.2rem;margin-bottom:.6rem}.uploading-icon[data-v-c1d9d684]{animation:bounce-c1d9d684 .8s ease-in-out infinite alternate}@keyframes bounce-c1d9d684{to{transform:translateY(-6px)}}.dz-label[data-v-c1d9d684]{font-size:.95rem;color:var(--text-secondary)}.dz-hint[data-v-c1d9d684]{font-size:.8rem;color:var(--text-muted);margin-top:.3rem}.accent[data-v-c1d9d684]{color:var(--accent)}.upload-progress-bar[data-v-c1d9d684]{background:var(--border);border-radius:4px;height:5px;margin-top:1rem;overflow:hidden}.upload-progress-fill[data-v-c1d9d684]{background:var(--accent);height:100%;border-radius:4px;transition:width .25s}.empty-state[data-v-c1d9d684]{color:var(--text-muted);font-size:.9rem;padding:1rem 0}.jobs-list[data-v-c1d9d684]{display:flex;flex-direction:column}.job-row[data-v-c1d9d684]{display:flex;justify-content:space-between;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--border);gap:.75rem}.job-row[data-v-c1d9d684]:last-child{border-bottom:none}.job-left[data-v-c1d9d684]{display:flex;align-items:center;gap:.75rem;min-width:0}.job-status-dot[data-v-c1d9d684]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-queued[data-v-c1d9d684]{background:var(--text-muted)}.dot-processing[data-v-c1d9d684]{background:#60a5fa;box-shadow:0 0 6px #60a5fa88;animation:pulse-dot-c1d9d684 1.2s ease-in-out infinite}.dot-done[data-v-c1d9d684]{background:var(--success)}.dot-failed[data-v-c1d9d684]{background:var(--error)}.dot-expired[data-v-c1d9d684]{background:var(--text-muted);opacity:.4}@keyframes pulse-dot-c1d9d684{0%,to{opacity:1}50%{opacity:.4}}.job-info[data-v-c1d9d684]{display:flex;flex-direction:column;gap:.15rem;min-width:0}.job-filename[data-v-c1d9d684]{font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.job-date[data-v-c1d9d684]{font-size:.75rem;color:var(--text-muted)}.job-right[data-v-c1d9d684]{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.badge[data-v-c1d9d684]{font-size:.72rem;padding:.2rem .55rem;border-radius:20px;font-weight:600;letter-spacing:.2px}.badge-queued[data-v-c1d9d684]{background:var(--border);color:var(--text-secondary)}.badge-processing[data-v-c1d9d684]{background:#60a5fa26;color:#93c5fd}.badge-done[data-v-c1d9d684]{background:var(--success-bg);color:var(--success)}.badge-failed[data-v-c1d9d684]{background:var(--error-bg);color:var(--error)}.badge-expired[data-v-c1d9d684]{background:var(--border);color:var(--text-muted)}.btn-download[data-v-c1d9d684]{background:var(--accent);color:#fff;padding:.3rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;text-decoration:none;transition:background .2s}.btn-download[data-v-c1d9d684]:hover{background:var(--accent-dim)}.job-error-icon[data-v-c1d9d684]{font-size:1rem;cursor:help}@media (max-width: 500px){.job-filename[data-v-c1d9d684]{max-width:160px}.badge[data-v-c1d9d684]{display:none}}
