:root{--bg: #0f1115;--card: #1a1d24;--card-2: #11141a;--border: #2a2f3a;--text: #e6e8ec;--muted: #9aa3b2;--accent: #ff9f43;--accent-2: #5b8def;--green: #2ecc71;--red: #e74c3c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.wrap{max-width:1200px;margin:0 auto;padding:32px 20px 80px}header h1{margin:0 0 4px;font-size:28px}.sub{margin:0 0 24px;color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.main-col{min-width:0}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px}.form label{display:block;font-size:13px;color:var(--muted);margin-bottom:14px}.form input[type=text],.form input[type=number],.form input:not([type=checkbox]){display:block;width:100%;margin-top:6px;padding:10px 12px;background:var(--card-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px}.form input:focus{outline:none;border-color:var(--accent-2)}.row{display:flex;gap:20px;align-items:center}.row label{flex:1}.checkbox{display:flex!important;align-items:center;gap:8px;margin-top:18px}.checkbox input{width:auto!important}button{background:var(--accent);color:#1a1205;border:none;padding:12px 22px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.error{border-color:var(--red);color:#ffb4ab}.status-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.badge{text-transform:uppercase;font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;background:#2a2f3a;letter-spacing:.03em}.badge.sm{font-size:9px;padding:3px 7px}.badge.running,.badge.queued{background:var(--accent-2);color:#fff}.badge.completed{background:var(--green);color:#062b14}.badge.failed{background:var(--red);color:#fff}.count{color:var(--muted);font-size:14px}.status-query{color:var(--muted);font-size:13px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.dl-group{margin-left:auto;display:flex;gap:8px}.dl{background:var(--green);color:#062b14;text-decoration:none;padding:8px 16px;border-radius:8px;font-weight:600;font-size:14px;border:none;cursor:pointer;display:inline-flex;align-items:center}.dl.csv{background:var(--accent-2);color:#fff}.dl.disabled,.dl:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bar{height:8px;background:var(--card-2);border-radius:6px;overflow:hidden;margin:16px 0 8px}.bar-fill{height:100%;background:var(--accent);transition:width .4s ease}.msg{color:var(--muted);font-size:13px;margin:4px 0 0}.msg.err{color:#ffb4ab}.table-card{padding:0;overflow:hidden}.table-tools{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.filter{flex:1;min-width:180px;padding:9px 12px;background:var(--card-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px}.filter:focus{outline:none;border-color:var(--accent-2)}.result-count{color:var(--muted);font-size:13px;white-space:nowrap}.table-scroll{overflow-x:auto;max-height:70vh;overflow-y:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--card-2);color:var(--muted);position:sticky;top:0;z-index:1;white-space:nowrap}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}.arrow{color:var(--accent)}.num{width:40px;color:var(--muted)}tbody tr:hover{background:#5b8def0f}td a{color:var(--accent-2);text-decoration:none}td a:hover{text-decoration:underline}.muted-inline{color:var(--muted)}.addr{max-width:280px;color:var(--muted)}.empty{padding:24px 16px;color:var(--muted);font-size:14px;text-align:center}.empty-state{color:var(--muted);font-size:14px}.side-col{min-width:0}.history{position:sticky;top:20px;padding:16px}.history-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.history-head h2{margin:0;font-size:15px}.refresh{background:transparent;color:var(--muted);padding:4px 10px;font-size:16px;border-radius:6px;line-height:1}.refresh:hover{color:var(--text)}.job-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow-y:auto}.job-item{border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;transition:border-color .15s ease,background .15s ease;background:var(--card-2)}.job-item:hover{border-color:var(--accent-2)}.job-item.active{border-color:var(--accent);background:#ff9f4314}.job-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.job-count{font-size:12px;color:var(--muted)}.job-query{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-meta{display:flex;align-items:center;justify-content:space-between;margin-top:6px;font-size:11px;color:var(--muted)}.job-dl{color:var(--green);text-decoration:none;font-weight:600}.job-dl:hover{text-decoration:underline}@media(max-width:880px){.layout{grid-template-columns:1fr}.history{position:static}.job-list{max-height:320px}}@media(max-width:520px){.row{flex-direction:column;align-items:stretch;gap:0}.checkbox{margin-top:0;margin-bottom:14px}.dl-group{margin-left:0;width:100%}.status-query{max-width:100%}}
