:root{color:#17202a;background:#f6f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{border:0}.tool-nav button{width:100%;border:0}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:28px;padding:28px 20px;color:#f8fbff;background:#17202a}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;width:44px;height:44px;place-items:center;border-radius:8px;color:#112b2f;background:#56d6c9;font-weight:900}.brand p,.brand span{margin:0}.brand p{font-size:18px;font-weight:800}.brand span{color:#b8c3cf;font-size:13px}.tool-nav{display:flex;flex-direction:column;gap:8px}.nav-group-title{padding:0 12px;color:#8fa0af;font-size:12px;font-weight:800}.tool-nav-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:8px;color:#d8e0e8;background:transparent;cursor:pointer;text-decoration:none}.tool-nav-item.active{color:#102326;background:#b8fff6;font-weight:700}.workspace{width:min(1180px,100%);margin:0 auto;padding:28px}.topbar,.hero-band,.panel-heading,.action-row,.status-pill,.metric-card,.node-option,.custom-node-form,.info-row{display:flex;align-items:center}.topbar{justify-content:space-between;gap:16px;margin-bottom:22px}.eyebrow{margin:0 0 4px;color:#517083;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2{margin:0;letter-spacing:0}h1{font-size:clamp(28px,4vw,44px);line-height:1.08}h2{color:#1c2935;font-size:20px;line-height:1.2}.status-pill{min-height:38px;gap:8px;padding:0 14px;border-radius:999px;color:#1d3440;background:#e1edf4;font-size:14px;font-weight:700;white-space:nowrap}.status-pill.running{color:#073d39;background:#b8fff6}.status-pill.complete{color:#0f4d2f;background:#c7f6d7}.status-pill.error{color:#7f1d1d;background:#ffd6d2}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero-band{justify-content:space-between;gap:18px;margin-bottom:18px;padding:24px;border:1px solid #d9e4ec;border-radius:8px;background:#fff}.node-url{max-width:680px;margin:10px 0 0;overflow:hidden;color:#5b6c78;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.action-row{flex-wrap:wrap;justify-content:flex-end;gap:10px}.primary-action,.icon-action,.text-action,.custom-node-form button,.ghost-icon{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:8px;cursor:pointer;transition:transform .16s ease,background .16s ease,opacity .16s ease}.primary-action{gap:8px;min-width:132px;padding:0 16px;color:#fff;background:#0f7a72;font-weight:800}.icon-action{width:42px;color:#273947;background:#e8eff4}.text-action{min-height:34px;padding:0 10px;color:#0f665f;background:#dff7f4;font-weight:700}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.48}.notice{margin-bottom:14px;padding:12px 14px;border:1px solid #d6e6ee;border-radius:8px;color:#244458;background:#eef7fb}.notice.error{border-color:#ffc7bf;color:#8b1f18;background:#fff1ef}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.metric-card,.panel{border:1px solid #d9e4ec;border-radius:8px;background:#fff;box-shadow:0 10px 28px #1c29350f}.metric-card{gap:12px;min-height:92px;padding:16px}.metric-icon{display:grid;width:40px;height:40px;place-items:center;border-radius:8px;color:#0f665f;background:#dff7f4;flex:0 0 auto}.metric-card p,.metric-card strong{margin:0}.metric-card p{color:#687987;font-size:13px}.metric-card strong{display:block;margin-top:3px;overflow-wrap:anywhere;color:#1c2935;font-size:22px;line-height:1.15}.content-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:14px}.panel{padding:18px}.large-panel{grid-row:span 2}.panel-heading{justify-content:space-between;gap:12px;margin-bottom:16px}.panel-heading>span{color:#5a7180;font-weight:800}.chart-wrap{position:relative;min-height:220px}.chart-wrap svg{display:block;width:100%;min-height:220px}.chart-wrap line{stroke:#d2e0e8;stroke-width:2}.chart-wrap polyline{fill:none;stroke:#0f7a72;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.chart-wrap circle{fill:#f2a541}.chart-wrap text{fill:#6a7c89;font-size:13px;font-weight:800}.chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#738391;font-weight:700}.progress-track{height:10px;overflow:hidden;border-radius:999px;background:#e5edf3}.progress-fill{height:100%;border-radius:inherit;background:#f2a541;transition:width .18s ease}.latency-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.small-stat{min-height:76px;padding:12px;border:1px solid #e0e8ee;border-radius:8px;background:#f9fbfd}.small-stat span,.small-stat strong{display:block}.small-stat span{color:#6d7d89;font-size:12px;font-weight:800}.small-stat strong{margin-top:6px;color:#1c2935;font-size:22px}.node-list{display:grid;gap:8px}.node-option{position:relative;min-height:58px;gap:10px;padding:10px;border:1px solid #e0e8ee;border-radius:8px;background:#f9fbfd}.node-option input{accent-color:#0f7a72}.node-option span{min-width:0;flex:1}.node-option strong,.node-option small{display:block}.node-option strong{color:#22313c}.node-option small{color:#71808b}.ghost-icon{width:34px;min-height:34px;color:#9f3027;background:#ffe8e4}.custom-node-form{gap:8px;margin-top:12px}.custom-node-form input,.lookup-form input{min-width:0;min-height:42px;flex:1;border:1px solid #cddae3;border-radius:8px;padding:0 12px;color:#1c2935;background:#fff}.custom-node-form input:focus,.lookup-form input:focus{border-color:#0f7a72;outline:3px solid rgba(15,122,114,.16)}.custom-node-form button{gap:6px;padding:0 12px;color:#fff;background:#274862;font-weight:800}.hint-text{margin:10px 0 0;color:#71808b;font-size:13px}.lookup-hero{align-items:flex-end}.lookup-form{display:flex;align-items:center;width:min(520px,100%);gap:10px}.lookup-form .primary-action{min-width:104px}.ip-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:14px}.ip-result-panel{min-height:420px}.info-list{display:grid;gap:10px;margin:0}.info-row{justify-content:space-between;gap:12px;min-height:38px;border-bottom:1px solid #edf2f5}.info-row:last-child{border-bottom:0}.info-row dt,.info-row dd{margin:0}.info-row dt{color:#6f7f8c}.info-row dd{overflow-wrap:anywhere;color:#253541;font-weight:700;text-align:right}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;justify-content:space-between;padding:16px}.tool-nav{min-width:0}.workspace{padding:20px}.metrics-grid,.content-grid,.ip-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.large-panel{grid-column:1 / -1;grid-row:auto}}@media(max-width:680px){.sidebar,.topbar,.hero-band{align-items:stretch;flex-direction:column}.tool-nav-item{width:100%}.workspace{padding:16px}.metrics-grid,.content-grid,.latency-grid{grid-template-columns:1fr}.action-row{justify-content:stretch}.primary-action{flex:1}.node-url{white-space:normal}.custom-node-form,.lookup-form{align-items:stretch;flex-direction:column}.lookup-form{width:100%}}
