*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:#f5f6fa;color:#1f2330}.container{max-width:960px;margin:0 auto;padding:24px 16px 48px}h1{font-size:22px;margin:0 0 16px}.card{background:#fff;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000000a}.card h2{font-size:16px;margin:0 0 12px}.row{display:flex;flex-wrap:wrap;gap:12px}.row>.field{flex:1 1 200px;min-width:0}.field label{display:block;font-size:12px;color:#666;margin-bottom:4px}.field input,.field select{width:100%;padding:8px 10px;font-size:14px;border:1px solid #d8dbe3;border-radius:8px;background:#fff}.sites{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.site-chip{padding:6px 12px;border-radius:999px;border:1px solid #d8dbe3;background:#fff;cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.site-chip.active{background:#2f6df6;color:#fff;border-color:#2f6df6}.actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}button{padding:8px 16px;border:0;border-radius:8px;cursor:pointer;font-size:14px;background:#2f6df6;color:#fff}button.secondary{background:#e7eaf3;color:#1f2330}button.danger{background:#d04545;color:#fff}button:disabled{opacity:.5;cursor:not-allowed}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 16px;font-size:14px}.status-grid .k{color:#888;font-size:12px}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px}.badge.idle{background:#eee;color:#555}.badge.waiting{background:#fff3cd;color:#8a6d3b}.badge.grabbing{background:#d4edda;color:#1f6e3a}.badge.done{background:#d1ecf1;color:#0c5460}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.dot.on{background:#29c46f}.dot.off{background:#c0c4cc}pre.logs{background:#0f1115;color:#d6d9e0;padding:12px;border-radius:8px;max-height:360px;overflow:auto;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all;margin:0}.muted{color:#888;font-size:12px}.avail-table{width:100%;border-collapse:collapse;font-size:14px}.avail-table th,.avail-table td{padding:8px 10px;border-bottom:1px solid #eef0f5;text-align:left;vertical-align:middle}.avail-table th{color:#666;font-weight:500;font-size:12px;background:#fafbfd}.avail-table td .site-chip{padding:2px 10px;font-size:12px}.avail-table button{padding:6px 12px;font-size:13px}.ant-tabs>.ant-tabs-content-holder{display:none}.ant-tabs>.ant-tabs-nav{margin-bottom:16px}
