:root{--bg: #0f1216;--bg-elev: #171b21;--bg-elev2: #1e242c;--border: #2a323d;--text: #e6e9ee;--text-dim: #9aa4b2;--accent: #e5a00d;--accent-hover: #f5b52a;--green: #3fb950;--red: #f85149;--blue: #58a6ff;--yellow: #d29922;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}a{color:var(--blue)}.app{max-width:1080px;margin:0 auto;padding:0 24px 72px}header.topbar{display:flex;align-items:center;gap:14px;padding:28px 0 18px;border-bottom:1px solid var(--border)}header.topbar h1{font-size:22px;margin:0;font-weight:700}header.topbar .logo{color:var(--accent);font-size:26px}.tagline{color:var(--text-dim);font-size:13px}nav.tabs{display:flex;gap:6px;margin:22px 0 28px;flex-wrap:wrap}nav.tabs button{background:transparent;border:1px solid transparent;color:var(--text-dim);padding:8px 16px;border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:500}nav.tabs button:hover{color:var(--text);background:var(--bg-elev)}nav.tabs button.active{background:var(--bg-elev2);color:var(--text);border-color:var(--border)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:22px}.card h2{margin:0 0 5px;font-size:17px}.card .sub{color:var(--text-dim);font-size:13px;margin:0 0 20px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.card-head .sub{margin-bottom:0}.card-head h2{margin-bottom:4px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:22px}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width: 640px){.grid-3{grid-template-columns:1fr}}.stat{background:var(--bg-elev2);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.stat .num{font-size:28px;font-weight:700;margin-bottom:2px}.stat .label{color:var(--text-dim);font-size:13px;text-transform:uppercase;letter-spacing:.4px}label{display:block;margin-bottom:14px;font-size:14px}label .lbl{display:block;margin-bottom:5px;color:var(--text-dim);font-size:13px}input[type=text],input[type=password],input[type=number],input[type=url]{width:100%;padding:9px 11px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px}input:focus{outline:none;border-color:var(--accent)}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:16px;height:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}button.btn{background:var(--accent);color:#1a1a1a;border:none;padding:10px 18px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer}button.btn:hover{background:var(--accent-hover)}button.btn.tiny{padding:4px 12px;font-size:12.5px}button.btn.secondary{background:var(--bg-elev2);color:var(--text);border:1px solid var(--border)}button.btn.secondary:hover{background:var(--border)}button.btn.danger{background:var(--red);color:#fff}button.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border)}table.spaced th:first-child,table.spaced td:first-child{padding-left:4px}table.spaced{margin-top:4px}th{color:var(--text-dim);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}tbody tr:hover{background:var(--bg-elev2)}.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600}.badge.remove{background:#f8514926;color:var(--red)}.badge.unshare{background:#d2992226;color:var(--yellow)}.badge.none{background:#3fb9501f;color:var(--green)}.badge.skip{background:#9aa4b226;color:var(--text-dim)}.badge.error{background:#f8514940;color:var(--red)}.badge.success{background:#3fb95026;color:var(--green)}.badge.running{background:#58a6ff26;color:var(--blue)}.alert{padding:12px 14px;border-radius:8px;margin-bottom:16px;font-size:14px}.alert.error{background:#f851491f;border:1px solid var(--red);color:#ffb4ae}.alert.ok{background:#3fb9501a;border:1px solid var(--green);color:#a5e8ad}.alert.warn{background:#d299221a;border:1px solid var(--yellow);color:#f0d38a}.muted{color:var(--text-dim)}.spinner{display:inline-block;width:15px;height:15px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.dryrun-toggle{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-elev2);border:1px solid var(--border);border-radius:8px;margin-bottom:14px}.right{margin-left:auto}details.run-detail{border-top:1px solid var(--border)}details.run-detail summary{cursor:pointer;padding:10px 0}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filter-chip{cursor:pointer;border:1px solid transparent;-webkit-user-select:none;user-select:none;font-size:12px;padding:4px 12px;transition:opacity .12s ease}.filter-chip.off{opacity:.4;filter:grayscale(.6)}.filter-chip.on:hover,.filter-chip.off:hover{opacity:.85}.toggle-link{margin:6px 0 4px;padding:6px 12px;font-size:13px}.small{font-size:12.5px;margin:2px 0 14px}.dot-pulse{display:inline-block;width:7px;height:7px;margin-left:7px;border-radius:50%;background:var(--green);animation:pulse 1.1s ease-in-out infinite;vertical-align:middle}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}
