.tools-catalog{padding-bottom:85px}.tool-feature{display:grid;grid-template-columns:.9fr 1.1fr;border:1px solid #c8d8ec;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 20px 60px #12355c0b}.tool-feature:focus-visible{outline:3px solid #1759df;outline-offset:5px}.tool-feature-art{min-height:330px;background:radial-gradient(ellipse at 20% 0%,#164c78,transparent 70%),#07182e;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px;color:#57dbce;position:relative;overflow:hidden;font-family:var(--mono)}.tool-orbit{position:absolute;width:300px;height:300px;border:1px solid #47bcca25;border-radius:50%;box-shadow:0 0 0 45px #47bcca0a,0 0 0 90px #47bcca08}.tool-address,.tool-nodes,.tool-art-label{position:relative}.tool-address{font-size:16px;color:#d0efff}.tool-nodes{font-size:25px;white-space:nowrap}.tool-art-label{font-size:10px;letter-spacing:2px;color:#87a5bb}.tool-feature-copy{padding:42px}.tool-feature-copy h2{font-size:38px;margin:22px 0 15px;letter-spacing:-1.5px}.tool-feature-copy p,.tools-footnote{color:#53657e}.tool-tags{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.tool-tags span,.checker-badge{font:10px var(--mono);padding:7px 10px;border-radius:20px;background:#edf5fa;color:#245977}.tools-footnote{font-size:13px;margin-top:22px}.checker-intro{padding-bottom:38px}.checker-back{display:block;color:#376595;font-size:13px;margin-bottom:28px}.checker-intro h1{font-size:clamp(54px,6vw,86px)}.checker-workspace{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:40px;align-items:start;padding-bottom:70px}.checker-console{padding:32px;background:white;border:1px solid #cbdcf0;border-radius:20px;box-shadow:0 18px 60px #173c6910;min-width:0}.checker-console-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:28px}.checker-console .field input{font-family:var(--mono);font-size:15px}.checker-modes{border:0;padding:0;margin:0 0 25px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.checker-modes legend{font-size:14px;font-weight:650;margin-bottom:14px}.checker-modes label{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid #d2dfee;border-radius:10px;cursor:pointer;min-width:0}.checker-modes label:has(input:checked){border-color:#1759df;background:#eff5ff;box-shadow:inset 0 0 0 1px #1759df}.checker-modes input{accent-color:#1759df;flex:none}.checker-modes span{font-size:14px;font-weight:600}.checker-modes small{display:block;font-size:11px;color:#5e7086;font-weight:400;margin-top:4px}.checker-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.checker-actions .button{border:0;cursor:pointer}.checker-actions .button:disabled{opacity:.6;cursor:wait}.checker-secondary{background:#edf3fa;color:#163e6d;border:1px solid #c8d9ed;cursor:pointer;font-family:var(--sans);padding:13px 20px}.checker-actions [role=status]{font-size:13px;color:#53657e;flex-basis:100%;line-height:1.6}.checker-actions [data-state=error]{color:#a52139}.checker-note{font-size:12px;line-height:1.7;background:#edf7f7;padding:14px;border-radius:8px;color:#285f68}.checker-note a{text-decoration:underline}.checker-about{padding:25px 0}.checker-about h2{font-size:36px;line-height:1.15;margin:20px 0}.checker-about p{font-size:14px;color:#53657e;line-height:1.8}.checker-about details{border-top:1px solid #cfdded;padding:18px 0}.checker-about summary{font-size:14px;cursor:pointer;font-weight:600}.checker-results{padding-bottom:80px}.checker-results-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:25px}.checker-results-heading h2{font-size:32px;margin:15px 0;overflow-wrap:anywhere}.checker-results-heading p{font-size:13px;color:#53657e;overflow-wrap:anywhere}.checker-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.checker-result-card{border:1px solid #cbdcf0;border-radius:15px;background:#fff;padding:26px;min-width:0}.checker-result-card h3{font-size:19px;margin:0 0 20px}.checker-result-card dl{margin:0}.checker-result-card dt{font:11px var(--mono);color:#617187;margin-top:15px;text-transform:uppercase}.checker-result-card dd{margin:5px 0 0;font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap}.checker-result-card p{font-size:14px;color:#53657e}.checker-result-card pre{background:#081b32;color:#bbefe7;border-radius:9px;padding:18px;font:12px/1.8 var(--mono);overflow:auto;max-height:500px;white-space:pre-wrap;overflow-wrap:anywhere}.checker-result-card:has(pre){grid-column:1/-1}[hidden]{display:none!important}@media(max-width:850px){.checker-workspace{grid-template-columns:1fr;gap:15px}.tool-feature{grid-template-columns:1fr}.tool-feature-art{min-height:240px}.checker-about{max-width:650px}}@media(max-width:550px){.checker-console{padding:21px}.checker-console-top{align-items:start;flex-direction:column}.checker-result-grid{grid-template-columns:1fr}.tool-feature-copy{padding:27px}.tool-feature-copy h2{font-size:31px}.checker-modes{grid-template-columns:1fr}.checker-result-card{padding:21px}}

.tools-catalog .tool-feature+.tool-feature{margin-top:26px}
/* Route Explorer: all visualization runs locally using existing probe results. */
.trace-explorer{grid-column:1/-1;min-width:0;background:radial-gradient(ellipse at 85% 0%,#124057 0,transparent 55%),#071727;color:#e4f3ff;border:1px solid #21435a;border-radius:22px;overflow:hidden;box-shadow:0 22px 55px #08233d20}.trace-header{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:30px 32px;border-bottom:1px solid #ffffff12}.trace-eyebrow{font:10px/1.5 var(--mono,monospace);letter-spacing:2px;color:#65dfce;margin:0 0 8px}.trace-explorer h3{font-size:30px;letter-spacing:-1px;margin:0 0 10px;color:#f2faff}.trace-subtitle{font:12px/1.6 var(--mono,monospace);color:#a7c1d4;margin:0;overflow-wrap:anywhere}.trace-switch{display:flex;padding:4px;border:1px solid #365168;border-radius:10px;background:#04101e;flex:none}.trace-switch button{border:0;background:transparent;color:#adc2d2;padding:10px 16px;font:12px var(--sans,sans-serif);border-radius:6px;cursor:pointer}.trace-switch button[aria-pressed=true]{background:#1f5263;color:#bafff0}.trace-explorer button:focus-visible{outline:3px solid #88f4e6;outline-offset:3px}.trace-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#244053;border-bottom:1px solid #244053}.trace-stats>div{padding:22px 30px;background:#0a1c2c}.trace-stats span{display:block;font:11px var(--mono,monospace);color:#a0b4c7;margin-bottom:10px}.trace-stats strong{font:22px var(--sans,sans-serif);color:#e2f5ff}.trace-chart{display:block;width:100%;height:auto;min-height:180px;padding:24px 18px 0;box-sizing:border-box;background:radial-gradient(ellipse at center,#15495730,transparent 65%)}.trace-grid{stroke:#365269;stroke-width:1;stroke-dasharray:3 7}.trace-axis{fill:#a2bdd0;font:11px monospace}.trace-line{stroke:#53dec4;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 5px #51e7d18a)}.trace-stem{stroke:#39b7b440;stroke-width:1}.trace-dot{fill:#74f4d7;stroke:#103e49;stroke-width:4}.trace-missing{fill:#0a1c2c;stroke:#91a6bd;stroke-width:2;stroke-dasharray:3 2}.trace-legend{font:10px/1.8 var(--mono,monospace);color:#b2c8d8;padding:0 32px;margin:0 0 22px}.trace-lower{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border-top:1px solid #244053}.trace-hop-list{max-height:325px;overflow:auto;scrollbar-color:#315e70 #091d2d;padding:12px}.trace-hop{display:flex;align-items:center;width:100%;text-align:left;gap:14px;border:1px solid transparent;border-radius:8px;background:transparent;color:#b8ccdc;padding:13px;font:12px var(--mono,monospace);cursor:pointer}.trace-hop:hover{background:#143348}.trace-hop[aria-pressed=true]{background:#133d4a;border-color:#38746e;color:#b5ffed}.trace-hop-number{color:#79dacb;flex:none}.trace-hop-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trace-hop-ms{flex:none}.trace-detail{padding:28px 30px;background:#0c2334;border-left:1px solid #244053;min-width:0}.trace-detail h4{font:20px/1.4 var(--sans,sans-serif);color:#fff;margin:8px 0;overflow-wrap:anywhere}.trace-address{font:12px var(--mono,monospace);color:#a5c2d7;overflow-wrap:anywhere}.trace-big-rtt{display:block;font:38px/1.5 var(--sans,sans-serif);color:#78eed6;letter-spacing:-1px}.trace-help,.trace-footnote{font:12px/1.7 var(--sans,sans-serif);color:#adc4d6}.trace-samples{display:flex;gap:8px;flex-wrap:wrap}.trace-samples span{font:10px var(--mono,monospace);padding:7px 9px;background:#1a3b4e;color:#d4e6f1;border-radius:5px}.trace-footnote{padding:20px 32px;margin:0;border-top:1px solid #244053}.trace-raw{margin:0;padding:28px 32px;color:#b7f0df;font:12px/1.9 var(--mono,monospace);white-space:pre-wrap;overflow-wrap:anywhere;max-height:650px;overflow:auto}.trace-empty{padding:32px;color:#bad0df}.trace-demo{border-radius:8px;font-size:12px}.checker-results{scroll-margin-top:24px}@media(max-width:650px){.trace-header{align-items:flex-start;flex-direction:column;padding:24px}.trace-stats{grid-template-columns:repeat(2,1fr)}.trace-stats>div{padding:18px 24px}.trace-stats strong{font-size:19px}.trace-lower{grid-template-columns:1fr}.trace-detail{border-left:0;border-top:1px solid #244053;padding:24px}.trace-legend,.trace-footnote{padding-left:24px;padding-right:24px}.trace-chart{padding:20px 4px 0}.trace-hop-list{max-height:260px}}
.trace-dot{cursor:pointer}
.trace-chart-wrap{overflow-x:auto;scrollbar-color:#315e70 #091d2d}.trace-chart-wrap:focus-visible{outline:2px solid #88f4e6;outline-offset:-3px}.trace-chart{min-width:640px}

