:root{--bg: #0d1117;--panel: #161b22;--border: #30363d;--text: #e6edf3;--muted: #8b949e;--accent: #58a6ff;--green: #3fb950;--red: #f85149;--yellow: #d29922;--purple: #bc8cff}*{box-sizing:border-box;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}aside{background:var(--panel);border-right:1px solid var(--border);padding:16px 0}.brand{padding:0 20px 16px;font-weight:700;font-size:16px}.brand span{color:var(--accent)}nav a{display:block;padding:8px 20px;color:var(--muted);font-weight:500}nav a:hover{color:var(--text);background:#58a6ff14;text-decoration:none}nav a.active{color:var(--text);border-left:3px solid var(--accent);background:#58a6ff14}nav a.danger{color:var(--red);margin-top:12px}main{padding:24px 32px;max-width:1200px}h1{font-size:20px;margin-bottom:16px}h1.tight{font-size:16px}h2{font-size:15px;margin:20px 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.card .num{font-size:26px;font-weight:700}.card .lbl{color:var(--muted);font-size:12px}table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px;white-space:nowrap}th{color:var(--muted);font-weight:600;background:#ffffff05}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#58a6ff0a}tr.clickable{cursor:pointer}td.wrap{white-space:normal;max-width:420px;overflow-wrap:anywhere}td.ellipsis{max-width:260px;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.b-scheduled{background:#58a6ff26;color:var(--accent)}.b-queued{background:#bc8cff26;color:var(--purple)}.b-running,.b-retrying{background:#d2992226;color:var(--yellow)}.b-completed{background:#3fb95026;color:var(--green)}.b-failed,.b-dead_letter{background:#f8514926;color:var(--red)}.b-cancelled,.b-expired{background:#8b949e26;color:var(--muted)}.filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.tab{border-radius:16px}.tab.active{background:#1f6feb;border-color:#1f6feb;color:#fff;font-weight:600}input,select,button{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 10px;font-size:13px}input:focus,select:focus{outline:none;border-color:var(--accent)}button{cursor:pointer}button.primary{background:#1f6feb;border-color:#1f6feb;color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:#388bfd}button:disabled{opacity:.5;cursor:not-allowed}pre{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:12px;overflow:auto;font-size:12px;max-height:340px;white-space:pre-wrap;overflow-wrap:anywhere}.muted{color:var(--muted)}.monospace{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.center{text-align:center}.small{font-size:12px}.error-box{background:#f851491a;border:1px solid var(--red);border-radius:8px;padding:12px 16px;margin-bottom:16px}.back{display:inline-block;margin-bottom:12px}.kv{display:grid;grid-template-columns:180px 1fr;gap:6px 16px;margin:8px 0 16px}.kv .k{color:var(--muted)}.pagination{display:flex;gap:8px;margin-top:12px;align-items:center}.login-wrap{display:flex;justify-content:center}.login{margin-top:12vh;width:420px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:32px}.login h1{text-align:center}.login h1 span{color:var(--accent)}.login input{width:100%;margin:8px 0}.login button{width:100%;padding:10px;margin-top:8px}.login-error{margin-top:10px;color:var(--red)}.login-ok{margin-top:10px;color:var(--green)}.linkish{background:none;border:none;color:var(--accent);padding:8px 0 0;width:100%;font-size:13px}.linkish:hover{text-decoration:underline}.account{max-width:420px;display:flex;flex-direction:column;gap:8px}.account button{padding:10px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#010409bf;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:24px;width:560px;max-width:100%;max-height:90vh;overflow:auto}.modal-title{margin-bottom:12px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;font-size:13px}.field span{color:var(--muted)}.field input{width:100%}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:center;gap:8px;margin:4px 0 12px;font-size:13px}.check input{width:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.secrets h3{font-size:13px;margin:14px 0 6px;color:var(--muted);text-transform:none}.secret-banner{background:#d299221a;border:1px solid var(--yellow);border-radius:8px;padding:10px 14px;margin-bottom:8px;font-size:13px}.secret-row{display:flex;gap:8px;align-items:center}.secret-row code{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;overflow-wrap:anywhere;display:block}.how{margin-bottom:20px}.flow{display:flex;align-items:stretch;gap:0;margin:4px 0 10px;overflow-x:auto;padding:10px 2px 6px}.fnode{flex:0 0 auto;min-width:118px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;text-align:center;display:flex;flex-direction:column;gap:2px;animation:rise .5s ease both}.fnode b{font-size:13px}.fnode small{color:var(--muted);font-size:11px}.fnode.ok{border-color:#3fb95073}.fico{font-size:20px;line-height:1.2}.fico.alarm{animation:pulse 2s ease-in-out infinite}.fico.gear{animation:spin 6s linear infinite;display:inline-block}.flink{flex:1 1 40px;min-width:34px;position:relative;align-self:center;height:2px;background:var(--border);border-radius:1px}.flink:after{content:"";position:absolute;right:-1px;top:-3px;border:4px solid transparent;border-left-color:var(--border)}.fdot{position:absolute;top:-3px;left:-6px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:flowdot 1.7s linear infinite}.fdot.d2{animation-delay:.22s}.fdot.d3{animation-delay:.44s}.fdot.d4{animation-delay:.66s}.fdot.d5{animation-delay:.88s}.how-sub{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.sub-chip{font-size:12px;padding:4px 10px;border-radius:14px;border:1px dashed var(--border);color:var(--muted)}.sub-chip.dlq{border-color:#f8514980;color:var(--red);animation:fadeDashed 3s ease-in-out infinite}.state-track{position:relative;display:inline-flex;gap:8px;flex-wrap:wrap;padding:4px 2px 10px}.state-track .chip{font-size:11px;font-weight:600;padding:3px 10px;border-radius:12px;position:relative;z-index:1;background:var(--panel);border:1px solid var(--border)}.chip.c-scheduled{color:var(--accent);border-color:#58a6ff66}.chip.c-queued{color:var(--purple);border-color:#bc8cff66}.chip.c-running{color:var(--yellow);border-color:#d2992266}.chip.c-retrying{color:var(--yellow);border-color:#d2992240}.chip.c-completed{color:var(--green);border-color:#3fb95066}.hop{position:absolute;top:7px;left:6px;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 10px var(--accent),0 0 4px var(--accent);animation:hop 7s cubic-bezier(.45,0,.55,1) infinite;z-index:2}@keyframes flowdot{0%{left:-6px;opacity:0}12%{opacity:1}88%{opacity:1}to{left:calc(100% - 4px);opacity:0}}@keyframes pulse{0%,to{transform:scale(1);text-shadow:none}50%{transform:scale(1.18);text-shadow:0 0 12px var(--yellow)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeDashed{0%,to{opacity:.55}50%{opacity:1}}@keyframes hop{0%,8%{left:6px;opacity:0}12%{opacity:1}20%,26%{left:24%}36%,42%{left:41%}52%,58%{left:58%}62%{left:54%}66%{left:58%}78%,84%{left:76%}92%{opacity:1}to{left:88%;opacity:0}}@media(prefers-reduced-motion:reduce){.fdot,.fico.alarm,.fico.gear,.fnode,.hop,.sub-chip.dlq{animation:none}.hop{display:none}}@media(max-width:800px){.layout{grid-template-columns:1fr}aside{border-right:none;border-bottom:1px solid var(--border)}main{padding:16px}}
