:root{--bg:#ffffff;--surface:#ffffff;--surface-hover:#fafafa;--border:rgba(0,0,0,0.12);--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 rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;min-height:100vh}.mono{font-family:Roboto Mono,SF Mono,monospace}.badge,.mono{font-size:12px}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius);font-weight:500;color:white}.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{display:inline-flex;align-items:center;gap:5px;border:none;border-radius:var(--radius);padding:8px 16px;font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all .2s;white-space:nowrap}.btn-primary{background:var(--accent);color:white;box-shadow:var(--shadow)}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.btn-ghost:hover{background:var(--surface-hover);color:var(--text)}.btn-danger{background:var(--error);color:white}.btn-danger:hover{background:#b71c1c}.btn-warning{background:#f57c00;color:white}.btn-warning:hover{background:#e65100}.btn-sm{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed}.progress-bar{width:100%;height:4px;background:#e0e0e0;border-radius:2px;overflow:hidden}.progress-bar .fill{height:100%;border-radius:2px;transition:width .3s ease}.table-container{background:var(--surface);border:1px solid #e0e0e0;border-radius:var(--radius);overflow:hidden}table{width:100%;border-collapse:collapse;font-size:14px}thead{border-bottom:1px solid var(--border)}th{text-align:left;font-weight:400;font-size:14px}td,th{padding:12px 16px;color:var(--text)}td{border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:#f5f5f5}