:root{--bg:#fff;--surface:#fff;--surface-hover:#fafafa;--border:#0000001f;--text:#282a37;--text-muted:#6b6d7b;--accent:#3f51b5;--accent-hover:#5c6bc0;--success:#2d8733;--warning:#e65100;--error:#c62828;--info:#1565c0;--pink:#ff4081;--radius:4px;--font:Roboto, "Helvetica Neue", Arial, sans-serif;--shadow:0px 2px 1px -1px #0003, 0px 1px 1px 0px #00000024, 0px 1px 3px 0px #0000001f}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5}.mono{font-family:Roboto Mono,SF Mono,monospace;font-size:12px}.badge{border-radius:var(--radius);color:#fff;align-items:center;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}.badge-queued{background:var(--info)}.badge-processing{background:#f57c00}.badge-succeeded{background:var(--success)}.badge-succeeded_with_errors{background:#f57c00}.badge-failed{background:var(--error)}.badge-cancelled{background:#757575}.badge-pending{background:#9e9e9e}.btn{border-radius:var(--radius);font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:5px;padding:8px 16px;transition:all .2s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow)}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{border:1px solid var(--border);color:var(--text-muted);background:0 0}.btn-ghost:hover{background:var(--surface-hover);color:var(--text)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#b71c1c}.btn-warning{color:#fff;background:#f57c00}.btn-warning:hover{background:#e65100}.btn-sm{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed}.progress-bar{background:#e0e0e0;border-radius:2px;width:100%;height:4px;overflow:hidden}.progress-bar .fill{border-radius:2px;height:100%;transition:width .3s}.table-container{background:var(--surface);border-radius:var(--radius);border:1px solid #e0e0e0;overflow:hidden}table{border-collapse:collapse;width:100%;font-size:14px}thead{border-bottom:1px solid var(--border)}th{text-align:left;color:var(--text);padding:12px 16px;font-size:14px;font-weight:400}td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text);padding:12px 16px}tr:last-child td{border-bottom:none}tr:hover td{background:#f5f5f5}
