:root{--bg: #0f172a;--panel: #1e293b;--border: #334155;--text: #e2e8f0;--dim: #94a3b8;--accent: #38bdf8}.app{background:var(--bg);min-height:100vh;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding:1.5rem 2rem}.header{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}.title{font-size:18px;margin:0;font-weight:600}.phase-badge{padding:.3rem .8rem;border-radius:999px;font-size:12px;background:#1e3a5f;color:#7dd3fc}.phase-badge.done{background:#14532d;color:#86efac}.verdict{font-size:13px}.verdict.ok{color:#22c55e}.verdict.fail{color:#f87171}.run-btn{background:#0ea5e9;color:#fff;border:none;border-radius:8px;padding:.5rem 1.2rem;font-size:13px;cursor:pointer}.run-btn:disabled{background:var(--border);cursor:default}.actions{margin-left:auto;display:flex;gap:.5rem}.field{font:12px sans-serif;color:#94a3b8;display:flex;align-items:center;gap:.4rem}.channel-input{width:12ch;font:12px monospace;background:#0f172a;color:#e2e8f0;border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem}.peer-table{width:100%;border-collapse:collapse;font:12px ui-monospace,Menlo,monospace}.peer-table th,.peer-table td{text-align:left;padding:.3rem .5rem;border-bottom:1px solid var(--border)}.peer-table th{color:#64748b;font-weight:500;font-size:11px}.peer-table .peer-busy{color:#f59e0b}.peer-table .peer-idle{color:#64748b}.grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.col{display:flex;flex-direction:column;gap:1rem}.panel{background:var(--panel);border-radius:10px;padding:1rem 1.25rem;border:1px solid var(--border);overflow-x:auto}.panel-title{color:var(--dim);font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.empty{color:var(--dim);font-size:13px}.job-status{font-size:15px;font-weight:600;color:var(--text)}.tx-item{border-bottom:1px solid #283548}.tx-item.open{background:#16202e;border-radius:6px}.tx-head{display:flex;align-items:center;gap:.6rem;padding:.5rem;font-size:13px;cursor:pointer;user-select:none}.tx-head:hover{background:#16202e;border-radius:6px}.tx-caret{color:var(--dim);width:.8em}.tx-hash{color:var(--accent);letter-spacing:.02em}.tx-detail{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .9rem;padding:.25rem .75rem .7rem 1.9rem;font-size:12px}.tx-field{display:contents}.tx-field-label{color:var(--dim);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.tx-field-value{color:var(--text);word-break:break-all}.tx-field-value.mono{color:var(--accent);letter-spacing:.02em;word-break:normal;cursor:help}.log-scroll{max-height:70vh;overflow-y:auto}.log-line{padding:.12rem 0;font-size:12px;white-space:pre-wrap}.log-time{margin-right:.4rem;color:var(--dim);font-variant-numeric:tabular-nums}.log-sev{margin-right:.5rem;color:#7dd3fc}.log-sev.error{color:#f87171}.log-sev.warning{color:#fbbf24}.log-sev.debug{color:#64748b}.log-text{color:var(--text)}.footnote{color:var(--dim);font-size:11px;margin-top:1.25rem}@media(max-width:768px){.app{padding:1rem}.header{gap:.6rem}.title{flex-basis:100%;font-size:16px}.grid{grid-template-columns:1fr}.field{flex:1 1 100%}.channel-input{flex:1;width:auto}.actions{flex:1 1 100%;margin-left:0}.run-btn{flex:1;padding:.6rem 1rem;font-size:14px}.log-scroll{max-height:50vh}}
