:root{--bg: #12151a;--panel: #1b2027;--panel2: #232a33;--line: #2e3742;--text: #e8e4da;--dim: #98a1ad;--amber: #e8b04a;--green: #5fbf8a;--red: #e0675a;--blue: #6aa3d8;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px}button{font:inherit;color:inherit;cursor:pointer}input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:7px 9px;min-width:0}input:focus,select:focus,button:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.num{font-variant-numeric:tabular-nums}.dim{color:var(--dim)}.good{color:var(--green)}.bad{color:var(--red)}.amber{color:var(--amber)}.app{max-width:1100px;margin:0 auto;padding:0 16px 90px}.top{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.top .brand{font-weight:700;letter-spacing:.02em}.top .stat{display:flex;flex-direction:column;line-height:1.15}.top .stat span:first-child{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.top .stat b{font-size:17px}.spacer{flex:1}.dot{width:9px;height:9px;border-radius:50%;background:var(--red);display:inline-block;margin-right:6px}.dot.on{background:var(--green)}nav.tabs{display:flex;gap:4px;margin:14px 0}nav.tabs button{background:none;border:0;padding:9px 14px;border-radius:8px;color:var(--dim)}nav.tabs button.on{background:var(--panel2);color:var(--text)}@media (max-width: 700px){nav.tabs{position:fixed;bottom:0;left:0;right:0;margin:0;background:var(--panel);border-top:1px solid var(--line);padding:6px;z-index:6;justify-content:space-around}nav.tabs button{padding:10px 8px;font-size:13px;flex:1}}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.card h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-weight:600}.card h4{margin:0;font-size:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:8px}.btn{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px 12px}.btn:hover:not(:disabled){border-color:var(--amber)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--amber);color:#1c1608;border-color:var(--amber);font-weight:600}.btn.small{padding:4px 9px;font-size:13px}.badge{font-size:12px;padding:2px 8px;border-radius:99px;background:var(--panel2);border:1px solid var(--line)}.badge.running{color:var(--green)}.badge.idle,.badge.no_inputs,.badge.output_full{color:var(--amber)}.bar{height:8px;background:var(--bg);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--amber)}.bar.green>i{background:var(--green)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--dim);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.06em}td.r,th.r{text-align:right}tr.sel{background:var(--panel2)}tr.click{cursor:pointer}tr.click:hover{background:var(--panel2)}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:76px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 16px;z-index:9;max-width:90vw;box-shadow:0 8px 30px #0008}.toast.err{border-color:var(--red)}.banner{background:color-mix(in srgb,var(--amber) 14%,var(--panel));border:1px solid var(--amber);border-radius:12px;padding:12px 16px;margin-bottom:14px}.check{display:flex;gap:8px;align-items:center}.check.done{color:var(--dim);text-decoration:line-through}.field{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--dim)}.field input,.field select{width:100%}.welcome{max-width:520px;margin:8vh auto;padding:0 16px}.welcome h1{margin:0 0 6px}.lore{font-style:italic;color:var(--dim)}svg.spark{width:100%;height:90px;display:block}.btn.danger{background:#5a2323;border-color:#a04040;color:#ffd9d9}
