.panel{border:1px solid var(--line);background:#0c1116cc;padding:26px;margin-top:18px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.section-title h2{margin:5px 0 0;font-size:22px}.section-title>span{color:var(--muted);font:12px ui-monospace}.node-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.node{border:1px solid var(--line);background:#0a0e13;padding:20px;min-height:225px}.node.online{border-top-color:var(--cyan)}.node.offline{opacity:.72}.node-head{display:flex;justify-content:space-between;gap:15px}.node-head>div{display:grid;grid-template-columns:10px 1fr;column-gap:8px}.node-head i{width:7px;height:7px;border-radius:50%;margin-top:8px;background:#67727d}.node.online .node-head i{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.node-head b{font-size:16px}.node-head span{grid-column:2;color:var(--muted);font-size:12px}.node-head em{font:10px ui-monospace;text-transform:uppercase;color:var(--muted)}.node.online .node-head em{color:var(--cyan)}.address{margin:18px 0;color:#74818d;font:11px ui-monospace}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metric{display:grid}.metric span{color:var(--muted);font-size:10px}.metric b{font-size:18px;margin:4px 0}.metric i{display:block;height:2px;background:#202832}.metric u{display:block;height:100%;background:var(--cyan);text-decoration:none}.node-foot{display:flex;justify-content:space-between;margin-top:18px;color:#6f7b86;font-size:11px}.split{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}.task-form{display:grid;grid-template-columns:1fr 110px auto;gap:8px;margin-bottom:12px}.task-form input,.task-form select{background:#080b0f;border:1px solid var(--line);color:var(--text);padding:10px}.task-list{display:grid;gap:7px}.task{display:flex;align-items:center;gap:12px;width:100%;border:1px solid var(--line);background:#090d12;color:var(--text);padding:12px;text-align:left}.task>i{width:16px;height:16px;border:1px solid #55616d;border-radius:50%}.task.completed>i{background:var(--cyan);box-shadow:inset 0 0 0 4px #090d12}.task.completed b{text-decoration:line-through;color:var(--muted)}.task>span{display:grid;flex:1}.task small{color:var(--muted)}.task em{font:10px ui-monospace;color:var(--cyan)}.no-tasks{padding:35px;text-align:center;color:var(--muted);border:1px dashed var(--line)}.capabilities{display:grid;grid-template-columns:1fr 1fr;gap:8px}.capabilities button{display:grid;text-align:left;border:1px solid var(--line);background:#090d12;color:var(--text);padding:14px}.capabilities span{color:var(--muted);font-size:11px}.capabilities em{color:var(--cyan);font:9px ui-monospace;text-transform:uppercase;margin-top:9px}.skeleton{height:220px;border:1px solid var(--line);background:linear-gradient(90deg,#0a0e13,#121922,#0a0e13);background-size:200%;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}@media(max-width:1100px){.node-grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}}@media(max-width:700px){.node-grid{grid-template-columns:1fr}.capabilities{grid-template-columns:1fr}.task-form{grid-template-columns:1fr}.panel{padding:16px}}
/* Long queues stay inside their panel instead of stretching the dashboard. */
.app-page .task-list{max-height:480px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:5px;scrollbar-color:#94a3b8 #eef2f7;scrollbar-width:thin}.app-page .task-list:has(.task:nth-child(8)){border-block:1px solid #e2e8f0;padding-block:7px}
