:root{--bg: #0d0f12;--panel: #16191f;--panel2: #1d2129;--border: #2a2f3a;--text: #e6e8ec;--muted: #8b93a1;--accent: #e5484d;--ok: #46a758;--warn: #f5a524;--mono: ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit}.shell{max-width:1100px;margin:0 auto;padding:0 20px 60px}.topbar{display:flex;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid var(--border);margin-bottom:24px}.logo{font-weight:800;letter-spacing:.5px}.logo span{color:var(--accent)}.topbar nav{display:flex;gap:14px}.topbar nav a{color:var(--muted);text-decoration:none}.topbar nav a.active,.topbar nav a:hover{color:var(--text)}.spacer{flex:1}h1{font-size:20px;margin:0 0 16px}h2{font-size:15px;margin:24px 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:14px}.card.clickable{cursor:pointer;transition:border-color .15s}.card.clickable:hover{border-color:var(--accent)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 700px){.grid2{grid-template-columns:1fr}}label{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}input,textarea,select{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:9px 11px;font:inherit}textarea{min-height:80px;resize:vertical}button{background:var(--accent);color:#fff;border:0;border-radius:7px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}button.ghost{background:var(--panel2);border:1px solid var(--border);color:var(--text)}button:disabled{opacity:.5;cursor:default}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--border);color:var(--muted)}.badge.running{color:var(--warn);border-color:var(--warn)}.badge.done,.badge.ready{color:var(--ok);border-color:var(--ok)}.badge.failed{color:var(--accent);border-color:var(--accent)}.stat{background:var(--panel2);border-radius:8px;padding:10px 14px}.stat b{display:block;font-size:18px}.stat span{color:var(--muted);font-size:12px}.lane{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.lane:last-child{border-bottom:0}.lane .name{width:110px;font-weight:600}.lane .note{flex:1;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log{font-family:var(--mono);font-size:12px;color:var(--muted);max-height:220px;overflow-y:auto}.log div{padding:2px 0}pre.md,pre.script{white-space:pre-wrap;font-family:inherit;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:16px;max-height:70vh;overflow-y:auto}pre.script{font-size:15px;line-height:1.7}.error{color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-size:12px;text-transform:uppercase}.login-wrap{display:flex;min-height:100vh;align-items:center;justify-content:center}.login-box{width:320px}.tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.tabs button{background:var(--panel2);border:1px solid var(--border);color:var(--muted);font-weight:500;padding:6px 12px}.tabs button.active{color:var(--text);border-color:var(--accent)}
