:root{--brand: #000e9c;--brand-strong: #000b7a;--accent: #000e9c;--bg: #f5f6f9;--card: #ffffff;--border: #e6e6ef;--text: #0e0e2c;--muted: #6b6b85;font-family:Source Sans Pro,system-ui,-apple-system,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--text)}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:stretch;background:var(--brand);color:#fff;padding:0 1.2rem}.topbar .logo{align-self:center;display:block;height:28px;width:auto;margin-right:1.4rem}.topbar .grow{flex:1}.mainnav{display:flex;align-items:stretch}.mainnav a{display:flex;align-items:center;padding:.9rem 1rem;color:#fff;font-weight:600;border-bottom:3px solid transparent}.mainnav a:hover{background:#ffffff1a;text-decoration:none}.mainnav a.active{background:#ffffff24;border-bottom-color:#fff}.topbar-right{display:flex;align-items:center;gap:.9rem}.topbar .health{color:#ffffffd9;font-size:.85rem;display:inline-flex;align-items:center}.topbar .led{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.4rem}.topbar .version{color:#fff9;font-size:.8rem}.topbar .topbtn{display:inline-flex;align-items:center;background:#fff;color:var(--brand);padding:.45rem .85rem;border-radius:6px;font-weight:700;font-size:.88rem;border:0;cursor:pointer;font-family:inherit}.topbar .topbtn:hover{background:#e3e6fb;text-decoration:none}.subbar{display:flex;gap:.25rem;background:#fff;border-bottom:1px solid var(--border);padding:0 1.2rem}.subbar-link{padding:.7rem 1rem;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.subbar-link:hover{color:var(--brand);text-decoration:none}.subbar-link.active{color:var(--brand);border-bottom-color:var(--brand)}.content{flex:1;min-width:0;min-height:0;overflow:auto;padding:1.5rem;width:100%;display:flex;flex-direction:column}.detail{flex:1;display:flex;flex-direction:column;min-height:0}.badge{padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge.queued{background:#ececf6;color:#4a4a6a}.badge.running{background:#fff3cd;color:#7a5b00}.badge.completed{background:#d6f5dd;color:#1d6b35}.badge.failed{background:#fbd9d9;color:#a11}.icon-btn{background:none;border:0;padding:.3rem;cursor:pointer;display:inline-flex;align-items:center;border-radius:6px;color:var(--muted);line-height:0}.icon-btn:hover{background:#f0f0f6}.icon-btn.danger{color:#d11}.icon-btn.danger:hover{background:#fbe6e6}.badge.active{background:#e7ecfb;color:#2c3a8c}.badge.empty{background:#ececf6;color:#888}table{width:100%;border-collapse:collapse;background:var(--card);border-radius:8px;overflow:hidden;border:1px solid var(--border)}th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid #eef0f4;font-size:.9rem}th{background:#faf9fe;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:#667}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1rem 1.2rem;margin-bottom:1rem}label{display:block;font-size:.85rem;font-weight:600;margin:.6rem 0 .2rem}input,textarea,select{width:100%;padding:.5rem .6rem;border:1px solid #ccccdd;border-radius:6px;font:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px #cdd3f5}button{background:var(--brand);color:#fff;border:0;border-radius:6px;padding:.55rem .9rem;font:inherit;font-weight:600;cursor:pointer}button:hover:not(:disabled){background:var(--brand-strong)}button.secondary{background:#ececf6;color:var(--text)}button.secondary:hover:not(:disabled){background:#e0e0ee}button:disabled{opacity:.5;cursor:not-allowed}.log{background:#0b1021;color:#c8e1ff;padding:.8rem;border-radius:8px;height:300px;overflow:auto;font:.82rem/1.45 ui-monospace,monospace;white-space:pre-wrap}.log.grow{flex:1 1 auto;height:auto;min-height:0}.logline{white-space:pre-wrap}.logline.log-info{color:#c8e1ff}.logline.log-success{color:#56d364}.logline.log-warn{color:#e3b341}.logline.log-error{color:#ff7b72}.tiles{display:flex;flex-direction:column;gap:.5rem;flex:0 0 auto}.tile{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.6rem .9rem;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem}.tile:hover{border-color:var(--brand)}.tile.selected{border-color:var(--brand);box-shadow:0 0 0 2px #cdd3f5}.tile-id{font-size:.85rem}.tile-field{display:flex;flex-direction:column;font-size:.9rem}.tile-field .k{font-size:.66rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.muted{color:var(--muted);font-size:.85rem}.err{color:#a11}.row{display:flex;gap:.6rem;align-items:center}.checklist{display:flex;flex-direction:column;gap:.35rem;padding:.3rem 0}.checklist.scroll{max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem}.check{display:flex;align-items:center;gap:.5rem;font-weight:400;margin:0}.check input{width:auto}.check code{background:#eef0f4;padding:.05rem .3rem;border-radius:4px;font-size:.85em}.tablewrap{max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:8px;margin:.3rem 0 .2rem}.tablewrap table{border:0;border-radius:0}.tablewrap thead th{position:sticky;top:0;z-index:1}.seltable tbody tr{cursor:pointer}.seltable tbody tr:hover{background:#eef0fc}.seltable tbody tr.selected{background:#dfe3fa}.seltable input{width:auto;margin:0}.seltable code{background:#eef0f4;padding:.05rem .3rem;border-radius:4px;font-size:.85em}
