:root{--bg:#1a1a2e;--bg-card:#16213e;--bg-input:#0f3460;--accent:#e94560;--accent-hover:#ff6b81;--text:#eee;--text-muted:#999;--border:#333;--success:#2ed573;--error:#ff4757;--warning:#ffa502}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:2rem}header{text-align:center;margin-bottom:2rem}header h1{font-size:1.8rem;font-weight:600;margin-bottom:.5rem}header p{color:var(--text-muted);font-size:.9rem}.upload-zone{border:2px dashed var(--border);border-radius:12px;padding:4rem 2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.upload-zone.dragover,.upload-zone:hover{border-color:var(--accent);background:rgba(233,69,96,.05)}.upload-zone input[type=file]{display:none}.upload-zone h2{font-size:1.2rem;margin-bottom:.5rem}.upload-zone p{color:var(--text-muted);font-size:.85rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s,opacity .2s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-input);color:var(--text)}.btn-secondary:hover{background:#1a4a7a}.processing-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem;align-items:start}@media (max-width:768px){.processing-layout{grid-template-columns:1fr}}.preview-panel{position:-webkit-sticky;position:sticky;top:2rem}.preview-panel img{width:100%;border-radius:8px;border:1px solid var(--border)}.preview-panel .meta{margin-top:.5rem;font-size:.8rem;color:var(--text-muted)}.models-grid{display:flex;flex-direction:column;gap:1rem}.model-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.model-card-header{display:flex;justify-content:space-between;align-items:center}.model-card-header h3{font-size:.95rem;font-weight:500}.model-card-header .provider{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.status-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;padding:.2rem .6rem;border-radius:4px}.status-badge.pending{color:var(--text-muted)}.status-badge.running{color:var(--warning)}.status-badge.complete{color:var(--success)}.status-badge.error{color:var(--error)}.status-badge.placeholder{color:var(--text-muted);font-style:italic}.spinner{display:inline-block;width:12px;height:12px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.transcript-preview{margin-top:.75rem;padding:.75rem;background:rgba(0,0,0,.2);border-radius:4px;font-size:.8rem;font-family:monospace;max-height:200px;overflow-y:auto;white-space:pre-wrap;color:var(--text-muted)}.elapsed{font-size:.75rem;color:var(--text-muted);margin-top:.5rem}.error-msg{font-size:.8rem;color:var(--error);margin-top:.5rem}.prompt-preview{margin-bottom:1.5rem}.prompt-text{margin-top:.75rem;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;font-size:.8rem;font-family:monospace;white-space:pre-wrap;word-break:break-word;color:var(--text-muted);max-height:400px;overflow-y:auto;line-height:1.5}.download-section{text-align:center;margin-top:2rem;padding:2rem;background:var(--bg-card);border-radius:12px;border:1px solid var(--border)}.download-section h2{margin-bottom:.5rem}.download-section p{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.download-actions{gap:1rem}.download-actions,.login-page{display:flex;justify-content:center}.login-page{align-items:center;min-height:80vh}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:2.5rem;width:100%;max-width:400px;text-align:center}.login-card h1{font-size:1.5rem;margin-bottom:.5rem}.login-card p{color:var(--text-muted);font-size:.85rem;margin-bottom:1.5rem}.login-card input[type=password]{width:100%;padding:.75rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.95rem;margin-bottom:1rem;outline:none}.login-card input[type=password]:focus{border-color:var(--accent)}.login-card .error-msg{margin-bottom:1rem}.login-card .btn{width:100%;justify-content:center}