:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#e5f2fb;background:#070d17;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-height:100vh;overflow-x:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(117,173,236,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(117,173,236,.022) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 90%)}
.ambient{position:fixed;pointer-events:none;border-radius:50%;filter:blur(70px);opacity:.5}.ambient-one{left:-240px;top:160px;width:600px;height:580px;background:radial-gradient(circle,#0f3060,transparent 66%)}.ambient-two{right:-300px;top:-170px;width:780px;height:670px;background:radial-gradient(circle,#14384e,transparent 70%)}
.shell{position:relative;z-index:1;width:min(1540px,calc(100% - 80px));margin:0 auto}.topbar{height:97px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(143,174,214,.1)}.brand{display:flex;align-items:center;gap:12px}.brand-icon{height:45px;width:45px;display:grid;place-items:center;color:#74e6f9;background:linear-gradient(145deg,#172c45,#0c1b2c);border-radius:14px;border:1px solid #29445e;box-shadow:0 0 29px #167ab51a}.brand-name{font-size:25px;font-weight:800;letter-spacing:-1.8px;line-height:1}.brand-name span:first-child{color:#63d4f2}.brand-dot{color:#74ffc2}.brand-meta{font-size:8px;letter-spacing:3.2px;color:#64839d;font-weight:700;margin-top:7px}

.section-tag{font-size:10px;color:#6e93b1;font-weight:800;letter-spacing:2px}

.dashboard{margin-top:24px;display:grid;grid-template-columns:minmax(246px,.93fr) minmax(370px,1.65fr) minmax(260px,.96fr);gap:16px;align-items:stretch}.panel{position:relative;background:linear-gradient(150deg,#111b2a 0%,#0c1523 80%);border:1px solid #22334a;border-radius:19px;box-shadow:0 12px 65px #00000018;overflow:hidden}.control-panel,.results-panel{padding:27px 26px 23px}.panel-top{display:flex;align-items:center;justify-content:space-between}.tiny-icon{width:17px;height:17px;fill:none;stroke:#4c6580;stroke-width:1.5;stroke-linecap:round}.panel h2{font-size:20px;letter-spacing:-.5px;margin:21px 0 5px;font-weight:700}.panel-subtitle{margin:0;color:#748ba2;font-size:12px;line-height:1.6}.control-block{margin-top:38px}.control-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;color:#d4e0ed;font-size:12px;font-weight:600}.label-value{font-size:10px;font-weight:700;letter-spacing:1px;color:#6acfe7}.streams{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.stream-button{border:1px solid #2b3d55;color:#8aa2b9;background:#152237;border-radius:7px;min-width:0;height:37px;font-size:12px;font-weight:730;transition:.18s}.stream-button:hover:not(:disabled){border-color:#4e93b0;color:white}.stream-button.active{color:#062132;border-color:#73d7f0;background:linear-gradient(110deg,#73daed,#84efd1);box-shadow:0 3px 20px #56cfe026}.stream-button:disabled{opacity:.35}.helper-text{font-size:11px;line-height:1.5;color:#607f97;margin-top:11px;min-height:36px}.duration-range{width:100%;margin:5px 0 0;accent-color:#6fdcf0;cursor:pointer;background:transparent}.range-labels{display:flex;justify-content:space-between;color:#5f7790;font-size:9px;letter-spacing:1px;font-weight:700;margin-top:9px}.info-divider{margin:27px 0 18px;height:1px;background:#243449}.info-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;color:#7c94ad;font-size:11px}.info-row span{display:flex;align-items:center;gap:8px}.info-row strong{font-size:11px;color:#bfd2e5;font-weight:650;white-space:nowrap}.small-circle{display:inline-block;height:7px;width:7px;border-radius:50%}.cyan{background:#55d0f1}.purple{background:#a48cff}.green{background:#64e5ab}.orange{background:#ffc477}.info-row .status-text{color:#65d9ad}.control-foot{margin-top:23px;border:1px solid #284035;border-radius:8px;padding:11px 10px;color:#83af9a;background:#112219;font-size:10px;display:flex;gap:7px;align-items:center}.lock-icon{height:14px;width:14px;fill:none;stroke:#6dc6a1;stroke-width:1.7;stroke-linejoin:round}
.speed-panel{background:radial-gradient(ellipse at 50% 40%,#16304a 0%,#101d2e 45%,#0b1422 88%);padding:27px 26px 22px;display:flex;flex-direction:column}.speed-panel:before{content:"";position:absolute;pointer-events:none;inset:0;background:radial-gradient(ellipse at 50% 47%,transparent 32%,#070e1a40 84%)}.speed-header{z-index:1;display:flex;align-items:center;justify-content:space-between}.speed-title{font-size:12px;letter-spacing:1.5px;color:#bed6e8;margin-top:8px;font-weight:750}.signal-badge{display:flex;align-items:center;gap:6px;border:1px solid #2a3c50;border-radius:6px;color:#7792ac;font-size:9px;letter-spacing:1.5px;padding:7px 9px;font-weight:750}.signal-badge i{width:5px;height:5px;background:#718aa4;border-radius:50%}.signal-badge.active{color:#75e5bf;border-color:#315c52}.signal-badge.active i{background:#77f4bd;box-shadow:0 0 12px #77f4bd}.dial-frame{position:relative;width:100%;max-width:480px;align-self:center;flex:1;display:flex;align-items:center;justify-content:center;min-height:362px}.dial-svg{position:absolute;width:min(100%,400px);height:auto;aspect-ratio:1}.dial-center{text-align:center;position:relative;z-index:2;margin-top:-4px}.dial-label{font-size:10px;letter-spacing:2px;font-weight:780;color:#7696b2}.dial-value{font-size:clamp(45px,5.1vw,83px);font-variant-numeric:tabular-nums;line-height:1.25;letter-spacing:-3px;color:#f2fcff;font-weight:780;white-space:nowrap;text-shadow:0 4px 40px #a2f1ff18}.decimal{color:#b6d4df;font-size:.54em;letter-spacing:-1px}.dial-unit{display:flex;justify-content:center;align-items:center;gap:9px;color:#67e8df;font-weight:750;font-size:15px}.dial-unit span:last-child{font-size:9px;color:#66849e;letter-spacing:.5px}.tiny-sep{height:12px;border-left:1px solid #34536a}.dial-lower{position:absolute;bottom:1%;width:100%;display:flex;justify-content:center}.dial-lower-text{font-size:11px;color:#82a3bb;display:flex;align-items:center;gap:6px}.wave-icon{color:#67dfee;font-size:18px}.speed-bottom{position:relative;z-index:2;margin-top:0}.start-button{width:100%;height:59px;display:flex;align-items:center;justify-content:center;gap:12px;color:#032431;border:none;border-radius:11px;background:linear-gradient(95deg,#68d4f0,#83efc8);font-size:12px;font-weight:850;letter-spacing:1.2px;box-shadow:0 10px 35px #35b7d51a;transition:transform .18s,filter .18s}.start-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.07)}.start-button:disabled{opacity:.5}.start-button.running{color:#eed8d8;background:linear-gradient(90deg,#304253,#3b4e59)}.start-arrow{margin-left:8px;font-size:18px}.phase-track{margin-top:21px;height:3px;border-radius:4px;background:#25384b;overflow:hidden}.phase-track-fill{height:100%;width:0;background:linear-gradient(90deg,#388afb,#63d6f2,#6ce8bd);transition:width .2s}.phase-foot{display:flex;justify-content:space-between;margin-top:10px;color:#63849c;font-size:10px;font-weight:750;letter-spacing:1.1px}
.result-row{display:flex;align-items:center;gap:11px;padding:17px 0;border-bottom:1px solid #243248}.result-row:first-of-type{margin-top:9px}.result-icon{height:39px;width:39px;flex-shrink:0;display:grid;place-items:center;border-radius:10px;font-size:20px;font-weight:500}.result-icon.down{background:#123453;color:#5bbafd}.result-icon.up{background:#302349;color:#bb95ff}.result-icon.ping{background:#154039;color:#77dbb4}.result-icon.jitter{background:#443522;color:#e4b469}.result-meta{flex:1;min-width:0}.result-label{font-size:9px;font-weight:850;letter-spacing:1.5px;color:#7892a9}.result-name{font-size:11px;color:#bacbda;margin-top:5px}.result-number{text-align:right}.result-number strong{display:block;color:#e5f4ff;font-size:21px;letter-spacing:-.4px;font-variant-numeric:tabular-nums;line-height:1.15}.result-number span{font-size:10px;color:#6c8ca4}.loaded-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 0;margin-top:1px;border-bottom:1px solid #26374a}.loaded-strip span,.cpu-title span{color:#8da7bc;font-size:10px;letter-spacing:.7px;font-weight:700}.loaded-strip strong{color:#a5eac9;font-size:12px}.cpu-title{margin-top:22px;display:flex;justify-content:space-between;align-items:center}.cpu-title strong{font-size:11px;color:#8ed6e7;font-weight:700}.cpu-grid{margin-top:15px;display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:4px;height:47px;align-items:stretch}.cpu-bar{position:relative;border-radius:3px;background:#243249;overflow:hidden}.cpu-fill{position:absolute;bottom:0;left:0;right:0;min-height:1px;background:linear-gradient(0deg,#2885cf,#66dfe7);transition:height .6s}.cpu-fill.high{background:linear-gradient(0deg,#e28b54,#f0b77b)}.cpu-foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px;color:#637b93;font-size:10px}
.chart-panel{padding:25px 29px 20px;margin-top:18px;min-height:265px}.chart-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.chart-heading h2{margin:9px 0 0;font-size:17px}.legend{display:flex;gap:24px;font-size:10px;letter-spacing:1px;font-weight:750;color:#91abc1}.legend span{display:flex;align-items:center;gap:8px}.legend-line{display:block;height:3px;width:17px;border-radius:2px}.download-line{background:#5bd7ec}.upload-line{background:#a98bf3}.chart-wrap{margin-top:12px;height:163px;position:relative}.chart-wrap canvas{height:100%;width:100%;display:block}.chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:#536f89;font-size:12px;pointer-events:none}.chart-footer{display:flex;justify-content:space-between;border-top:1px solid #243449;padding-top:13px;color:#627f98;font-size:10px;letter-spacing:.4px}footer{height:72px;display:flex;align-items:center;justify-content:space-between;color:#4f6983;font-size:10px;letter-spacing:1.3px;font-weight:750}.toast{position:fixed;z-index:50;bottom:26px;right:26px;background:#283248;border:1px solid #57718a;border-radius:11px;padding:17px 20px;max-width:400px;color:#fff;font-size:13px;box-shadow:0 15px 60px #0006}.toast.hidden{display:none}
@media(max-width:1230px){.shell{width:min(1100px,calc(100% - 40px))}.dashboard{grid-template-columns:minmax(250px,.9fr) minmax(350px,1.4fr)}.results-panel{grid-column:1/-1}.results-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:16px;align-content:start}.results-panel>.panel-top,.results-panel>h2,.results-panel>.panel-subtitle,.results-panel>.loaded-strip,.results-panel>.cpu-title,.results-panel>.cpu-grid,.results-panel>.cpu-foot{grid-column:1/-1}.results-panel .result-row{margin-top:8px;min-width:0}.result-row{gap:7px}.result-icon{height:32px;width:32px;font-size:17px}.result-number strong{font-size:17px}.cpu-grid{height:38px}}@media(max-width:770px){.shell{width:calc(100% - 28px)}.topbar{height:80px}.dashboard{margin-top:16px}.dashboard{grid-template-columns:1fr;gap:14px}.speed-panel{grid-row:1}.speed-panel{padding:23px 18px}.dial-frame{min-height:325px}.control-panel,.results-panel{padding:24px 21px}.results-panel{display:block}.results-panel .result-row{gap:12px;margin:0}.result-icon{height:39px;width:39px}.result-number strong{font-size:22px}.control-block{margin-top:25px}.chart-panel{padding:20px 15px}.legend{gap:9px;font-size:8px}.chart-heading h2{font-size:14px}.chart-wrap{height:160px}footer{font-size:8px;gap:20px}.cpu-grid{height:45px}.speed-panel .dial-svg{width:min(100%,380px)}}@media(max-width:420px){.dial-value{font-size:57px}.dial-frame{min-height:280px}.brand-name{font-size:22px}.brand-meta{font-size:7px}.chart-heading{align-items:flex-start;flex-direction:column}.chart-empty{padding:0 20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Keep numerical typography stable while the readout is animated. */
.dial-value{font-variant-numeric:tabular-nums lining-nums}
.dial-unit{font-size:16px;letter-spacing:.6px}

/* Fit the readout inside the dial at multi-gigabit rates. */
.dial-value{transition:font-size .3s ease}
.dial-value.speed-four-digits{font-size:clamp(42px,4.5vw,67px)}
.dial-value.speed-five-digits{font-size:clamp(39px,4vw,57px)}
.dial-value.speed-six-digits{font-size:clamp(36px,3.5vw,48px)}
@media(prefers-reduced-motion:reduce){.dial-value{transition:none}}

.history-panel{margin-top:20px;padding:26px 28px}.saved-result{margin:20px 0;padding:22px;border:1px solid #245078;border-radius:14px;background:#0d2434}.saved-metrics{font-size:18px;font-weight:700;color:#d8f6ff;line-height:1.6}.saved-date{color:#7f9eb3;font-size:12px;margin:9px 0}.share-url{width:100%;box-sizing:border-box;background:#0a1724;border:1px solid #244257;color:#beeefc;border-radius:8px;padding:13px;font:inherit}.share-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.share-actions button{background:#1b5269;border:1px solid #397e92;border-radius:9px;color:#e3fbff;padding:11px 18px;font-weight:700;cursor:pointer}.share-actions button:hover{background:#246c83}.recent-results{display:grid;gap:8px;margin-top:14px}.history-item{color:#a6def0;border:1px solid #20394b;border-radius:9px;padding:13px;text-decoration:none;background:#101f2d}.history-item:hover{border-color:#3ecada}
.share-zone{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:12px 0 16px;animation:share-in .4s ease both}.share-zone[hidden]{display:none}.share-button{border:1px solid #3aa7bf;color:#dffaff;background:linear-gradient(125deg,#154157,#18314b);border-radius:12px;padding:12px 18px;font-weight:750;letter-spacing:.05em;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}.share-button:hover{background:#1a5973;transform:translateY(-1px);box-shadow:0 6px 20px #05a8ff21}.share-feedback{color:#93c4d2;font-size:12px}@keyframes share-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* v0.7: single measurement panel, telemetry on the right, graph always below. */
.dashboard{grid-template-columns:minmax(0,1.55fr) minmax(270px,.85fr);gap:18px}
.speed-panel{min-height:600px}.results-panel{grid-column:auto;display:block}
.brand-fryazino{text-decoration:none;gap:16px;min-width:0}.brand-mark{width:68px;height:68px;object-fit:contain;filter:drop-shadow(0 0 14px #03c7ff4f)}
.brand-word{color:#eff9ff;font-size:clamp(22px,3.2vw,43px);font-weight:850;letter-spacing:-.055em;overflow-wrap:anywhere}
.brand-domain{color:#19cafa;text-shadow:0 0 25px #009cde26}
.topbar{height:116px}.results-panel>.result-row{min-width:0}
@media(max-width:1230px){.dashboard{grid-template-columns:minmax(0,1.35fr) minmax(260px,.85fr)}.results-panel{grid-column:auto;display:block}.results-panel .result-row{margin:0;padding:17px 0}}
@media(max-width:770px){.dashboard{grid-template-columns:1fr}.speed-panel{min-height:unset}.results-panel{grid-column:1}.topbar{height:92px}.brand-mark{width:50px;height:50px}.brand-word{font-size:clamp(20px,5.5vw,30px)}.brand-fryazino{gap:8px}}
@media(max-width:420px){.brand-word{font-size:19px}.brand-mark{width:43px;height:43px}}
