*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.55;color:#1a1a1a;background:#f4f5f7;direction:rtl}.page-container{max-width:860px;margin:0 auto;padding:2rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1.25rem}.app-header__title-row{display:flex;align-items:baseline;gap:.6rem}.app-header h1{font-size:1.5rem;font-weight:700;color:#111}.app-header p{color:#6b7280;font-size:.9rem;margin-top:.2rem}.version-badge{font-size:.75rem;font-weight:600;color:#6b7280;background:#e5e7eb;border-radius:999px;padding:.15em .55em;letter-spacing:.03em;font-family:ui-monospace,Cascadia Code,monospace}.card{background:#fff;border:1px solid #e2e4e8;border-radius:10px;padding:1.5rem}.card--error{border-color:#f5c6cb;background:#fff5f5;color:#8b0000}.card--warn{border-color:#fce8a6;background:#fffbee;color:#7a5c00}.card h2{font-size:1.15rem;font-weight:600;margin-bottom:1rem}.card h3{font-size:1rem;font-weight:600;margin-bottom:.4rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border:1px solid #d0d3d9;border-radius:6px;background:#fff;color:#333;font-size:.9rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s;white-space:nowrap}.btn:hover{background:#f0f1f3;border-color:#b0b3bb}.btn:active{background:#e6e8ec}.btn--primary{background:#2563eb;border-color:#2563eb;color:#fff}.btn--primary:hover{background:#1d4ed8;border-color:#1d4ed8}.btn--primary:disabled{background:#93c5fd;border-color:#93c5fd;cursor:not-allowed}.btn--small{padding:.3rem .7rem;font-size:.82rem}.muted{color:#6b7280;font-size:.875rem}.upload-drop{border:2px dashed #cbd0d8;border-radius:8px;padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:background .15s,border-color .15s;color:#6b7280}.upload-drop:hover,.upload-drop--over{background:#eff6ff;border-color:#3b82f6}.upload-drop--has-file{border-color:#10b981;background:#f0fdf4;color:#065f46}.upload-drop input[type=file]{display:none}.upload-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-top:1rem}.upload-controls label{display:flex;flex-direction:column;gap:.3rem;font-size:.875rem;color:#374151;font-weight:500}.upload-controls select,.upload-controls input[type=text]{padding:.4rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;background:#fff;cursor:pointer;min-width:130px}.upload-controls input[type=text]{cursor:text;min-width:110px}.upload-controls .btn{align-self:flex-end}.upload-error{margin-top:.75rem;color:#dc2626;font-size:.875rem}.jobs-table{width:100%;border-collapse:collapse;font-size:.9rem}.jobs-table th{text-align:right;padding:.5rem .75rem;border-bottom:2px solid #e5e7eb;color:#6b7280;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.jobs-table td{padding:.6rem .75rem;border-bottom:1px solid #f0f1f3;vertical-align:middle}.jobs-table tr:last-child td{border-bottom:none}.jobs-table tr:hover td{background:#fafbfc}.mini-bar{width:80px;height:6px;background:#e5e7eb;border-radius:999px;overflow:hidden}.mini-bar__fill{height:100%;background:#3b82f6;border-radius:999px;transition:width .4s ease}.badge{display:inline-block;padding:.2em .6em;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.02em}.badge--queued{background:#e5e7eb;color:#374151}.badge--active{background:#dbeafe;color:#1d4ed8}.badge--done{background:#d1fae5;color:#065f46}.badge--failed{background:#fee2e2;color:#991b1b}.badge--warn{background:#fef3c7;color:#92400e}.progress-wrap{margin-top:1rem}.progress-label{display:flex;justify-content:space-between;font-size:.82rem;color:#6b7280;margin-bottom:.35rem}.progress-track{height:8px;background:#e5e7eb;border-radius:999px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:#3b82f6;transition:width .4s ease}.progress-fill--done{background:#10b981}.progress-fill--failed{background:#ef4444}.done-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.preview-wrap{background:#fff;border:1px solid #e2e4e8;border-radius:10px;overflow:hidden;height:70vh;min-height:400px}.preview-frame{width:100%;height:100%;border:none}.job-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.4rem;font-size:.875rem;color:#6b7280}.job-meta strong{color:#374151}
