.gauge-container{position:relative}.gauge-container>.gauge>.dial{stroke-width:1}.gauge-container>.gauge>.value{stroke:#007bff;stroke-width:5;fill:transparent}.gauge-container>.result{position:absolute;bottom:35%;width:100%}*{box-sizing:border-box}[hidden]{display:none!important}.text-center{text-align:center}.flex{display:flex}h2{font-size:1.6rem;margin-bottom:1rem}.btn,button{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;background:var(--blue);color:#fff;cursor:pointer;transition:color .15s ease-in-out,background-color .15s ease-in-out}.btn.btn-lg,button.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn:focus,.btn:hover,button:focus,button:hover{background:var(--darkBlue)}.btn.btn-danger,button.btn-danger{background:var(--red)}.btn.btn-danger:focus,.btn.btn-danger:hover,button.btn-danger:focus,button.btn-danger:hover{background:var(--darkRed)}.btn-link,a{background:transparent;border:0;color:var(--blue);text-decoration:none;cursor:pointer;transition:color .15s ease-in-out,background-color .15s ease-in-out}.btn-link:focus,.btn-link:hover,a:focus,a:hover{background:transparent;color:var(--darkBlue);text-decoration:underline}table{width:100%;margin-bottom:1rem;background-color:transparent;border-collapse:collapse}table td,table th{padding:.75rem;vertical-align:top;text-align:left;border-top:1px solid var(--borderColor)}table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}fieldset{min-width:0;padding:0;margin:0 0 1rem;border:0}.field{display:flex;min-height:48px;line-height:2.5em;align-items:center}.field>label{min-width:120px;margin-right:1em}.field>div>select{width:100%;min-width:140px}.field input[type=checkbox]+label,.field input[type=radio]+label{margin-right:1em}legend{display:block;width:100%;max-width:100%;padding:0;margin-top:1rem;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}label{display:inline-block}input[type=number],input[type=text],select{height:calc(2.25rem + 2px);padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#303030;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input[type=checkbox],input[type=radio]{-webkit-appearance:none;position:relative}input[type=checkbox]:before,input[type=radio]:before{display:inline-block;content:" ";width:14px;height:14px;border:2px solid;border-color:var(--blue)}input[type=checkbox]:checked:after,input[type=radio]:checked:after{display:inline-block;content:" ";position:absolute;bottom:7px;left:4px;width:10px;height:10px}input[type=checkbox]:checked:after{border:solid var(--blue);border-width:0 3px 3px 0;transform:rotate(45deg);bottom:7px;left:5px;width:4px;height:8px}input[type=radio]:checked:after{background:var(--blue)}input[type=radio]:after,input[type=radio]:before{border-radius:100%}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group input{flex:1 1 auto;width:1%}.input-group :not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group .input-group-append{display:flex;margin-left:-1px}.input-group .input-group-append *{border-top-left-radius:0;border-bottom-left-radius:0}@font-face{font-display:auto;font-family:icons;src:url(icons.2936e8bb.eot);src:url(icons.2936e8bb.eot#iefix) format("embedded-opentype"),url(icons.20db5f72.woff2) format("woff2"),url(icons.9b44de87.woff) format("woff"),url(icons.bf33ee4c.ttf) format("truetype"),url(icons.0d7923fc.svg#icons) format("svg");font-weight:400;font-style:normal}.icon:before{font-family:icons;font-style:normal;font-weight:400;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-cog:before{content:"\e805"}.icon-download:before{content:"\e800"}.icon-history:before{content:"\f1da"}.icon-info:before{content:"\e804"}.icon-jitter:before{content:"\e803"}.icon-latency:before{content:"\e801"}.icon-link:before{content:"\f1e0"}.icon-link2:before{content:"\e806"}.icon-trash:before{content:"\f1f8"}.icon-upload:before{content:"\e802"}.logo{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj48ZyBzdHJva2U9Im51bGwiPjxjaXJjbGUgY3g9IjI1NiIgY3k9IjI1NiIgZmlsbD0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHI9IjIyNCIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIzOS43MzcgNjQuNzU3QzEwNi4zMzMgNzYuNCAyNS4wNDMgMjE2LjU4MyA4Mi45MjcgMzM1LjE3NmMxMS43MDUgMjMuOTggMzUuNzU0IDU0LjU1IDM5LjY1NCA1MC40MDguODM3LS44ODcgNi4zNzEtNi43MTMgMTIuMzAxLTEyLjk0NWwxMC43ODItMTEuMzMyLTYuODkxLTcuODNDNDguNzkzIDI1MS4yMjUgMTI1LjQwMyA5My42NCAyNjIuNzMxIDk4LjUwMmMxMzIuODc1IDQuNzA0IDE5OC43NDcgMTYxLjYzOCAxMDguMTU2IDI1Ny42Ny02LjgyNiA3LjIzNi03LjcxIDQuOTEyIDcuNDkgMTkuNjgybDEyLjU5NCAxMi4yMzkgMy45MDMtMy43NjRjMjIuNzUzLTIxLjk1IDQyLjAxOC01Ny42NDUgNDkuMTc0LTkxLjExMyAyNi43LTEyNC44Ny03NS45NTctMjM5LjY2LTIwNC4zMTEtMjI4LjQ1OW0zOC4xOTggMTQxLjcyNWMtMjkuNDQxIDI0LjQwMy01My45OTcgNDQuODE1LTU0LjU3MiA0NS4zNi0uOTcxLjkyNCAzMC4yNjYgMzUuNDY2IDMyLjA3NCAzNS40NjYuODIyIDAgOTMuMDA3LTEwNy45MDcgOTIuOTEtMTA4Ljc1Ni0uMTQ5LTEuMzIxLTE0LjYzNi0xNi40MzgtMTUuNzU0LTE2LjQzOC0uNjIyIDAtMjUuMjE5IDE5Ljk2NS01NC42NTggNDQuMzY4Ii8+PC9nPjwvc3ZnPg==)}body{background:var(--backgroundColor);min-width:320px;max-width:1000px;margin:auto;padding:0 2em;font-family:var(--fontFamilySansSerif);font-size:var(--fontSize);color:var(--textColor)}@media only screen and (max-width:360px){body{padding:0 1em;font-size:.9em}}section{flex:1}header{display:flex;line-height:6rem}header h1{flex:1;margin:auto 0}header h1 a,header h1 a:focus,header h1 a:hover{text-decoration:none;color:inherit}header h1 #logo{display:inline-block;vertical-align:middle;width:48px;height:48px;background-position:50%;background-repeat:no-repeat;background-size:48px}@media only screen and (max-width:640px){header h1 #logo{width:32px;height:32px;background-size:32px}}header h1 #title{font-size:2.2rem;vertical-align:middle}@media only screen and (max-width:640px){header h1 #title{font-size:1.6rem}}header #commands{text-align:right}header #commands i.icon{font-size:1.2em}header #commands .btn-link{padding:.375rem}@media only screen and (max-width:480px){header #commands .btn-link{padding:.375rem 0}}#alerts .alert{position:relative;padding:.75rem 1.25rem;line-height:1.5em;color:#856404;background-color:#fff3cd;border:1px solid #ffeeba;border-radius:.25rem}#alerts .alert p{margin:0}#alerts .alert button.close{position:absolute;top:0;right:0;color:inherit;background-color:transparent;border:0;-webkit-appearance:none;font-size:1.5rem;text-shadow:0 1px 0 #fff;opacity:.5;cursor:pointer}#alerts .alert button.close:focus,#alerts .alert button.close:hover{color:#000}.flex h2{flex:1}#settings .field.custom{display:none}#settings form.custom .field.custom{display:block}#save-confirmation{opacity:0;padding:0 1em}#save-confirmation.fade{animation:fade 4s forwards}@keyframes fade{0%{opacity:0}25%{opacity:1}75%{opacity:1}to{opacity:0}}#history svg polyline{fill:none;stroke-width:2px}#history svg circle{stroke-width:0px;transition:stroke-width .3s}#history svg circle.focus,#history svg circle:hover{stroke-width:2px}#history svg text{font-size:10px}#history svg #downloadChart circle,#history svg #downloadChart polyline{stroke:#005bc0}#history svg #downloadChart circle,#history svg #downloadChart text{fill:#005bc0}#history svg #uploadChart circle,#history svg #uploadChart polyline{stroke:#1a8ef3}#history svg #uploadChart circle,#history svg #uploadChart text{fill:#1a8ef3}#history table tr:hover td{background-color:var(--backgroundAltColor)}#history table td,#history table th{line-height:1.4em;vertical-align:middle}#history table td a,#history table th a{padding:0}#history #go-landscape{display:none}#history #go-landscape #device-wrapper{margin:auto;top:0;left:0;bottom:0;right:0;width:90px;height:155px}#history #go-landscape #device-wrapper *{box-sizing:content-box}#history #go-landscape #device-wrapper #device{width:80px;height:120px;margin:40px 0 0;border-color:var(--phoneColor);border-style:solid;border-width:15px 5px 20px;border-radius:4px;animation:device 2s ease-in-out infinite}#history #go-landscape #device-wrapper #device:before{content:"";display:block;width:10px;height:3px;margin:-9px auto;background:var(--phoneColorDark);border-radius:4px}#history #go-landscape #device-wrapper #device:after{content:"";display:block;width:12px;height:12px;margin:4px auto;background:var(--phoneColorDark);border-radius:10px}#history #go-landscape #device-wrapper #device #device-screen{width:60px;height:100px;margin:15px 0 0;padding:10px;background:var(--screenColor);color:var(--screenColorDark);font-size:.5em;overflow:hidden}#history #go-landscape #device-wrapper #device #device-screen ul{margin:0;padding:0;transform-origin:center;transform:rotate(90deg) translateX(13px) scaleX(1.7);animation:screen-lines 2s ease-in-out infinite}#history #go-landscape #device-wrapper #device #device-screen li{height:6px;margin:0 0 5px;list-style:none;border-color:var(--screenColorDark);background:var(--screenColorDark)}#history #go-landscape #device-wrapper #device #device-screen li:nth-child(2){width:75%}#history #go-landscape #device-wrapper #device #device-screen li:nth-child(5){width:60%}#history #go-landscape #device-wrapper #device #device-screen li:nth-child(7){width:90%}#history #go-landscape p{text-align:center}@media only screen and (max-width:800px) and (orientation:portrait){#history #go-landscape{display:block}#history svg,#history table{display:none}}@keyframes device{0%{transform:rotate(0deg);opacity:0}25%{transform:rotate(0deg);opacity:1}50%{transform:rotate(-90deg)}to{transform:rotate(-90deg);opacity:1}}@keyframes screen-lines{0%{opacity:0}50%{opacity:0}75%{opacity:1}to{opacity:1}}#share .img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}:root{--blue:#007bff;--darkBlue:#0056b3;--red:#dc3545;--darkRed:#c82333;--phoneColor:#494f54;--phoneColorDark:#25282b;--screenColor:#f5f5f5;--screenColorDark:#e8e8e8;--backgroundColor:#1a1a1a;--backgroundAltColor:#303030;--textColor:#fff;--primaryColor:#ccc;--borderColor:#dee2e6;--fontFamilySansSerif:-apple-system,BlinkMacSystemFont,"Segoe UI","Ubuntu",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--fontFamilyMonospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--fontSize:1em}::selection{background:var(--blue);color:#fff}html.light{--backgroundColor:#fff;--backgroundAltColor:#f5f5f5;--textColor:#000;--primaryColor:#333}#speedtest{display:flex;flex-flow:row wrap;margin:0 auto;max-width:820px;text-align:center}#speedtest #actions,#speedtest #ip,#speedtest #timestamp{width:100%}#speedtest #download,#speedtest #jitter,#speedtest #latency,#speedtest #upload{width:25%}@media only screen and (max-width:815px){#speedtest #download,#speedtest #jitter,#speedtest #latency,#speedtest #upload{width:50%}}#speedtest #actions{padding:1em 0}#speedtest #actions #timestamp{display:none;padding-top:1em}#speedtest #gauge{width:80%;margin:0 auto -10%}#speedtest #gauge .gauge{max-height:400px}@media only screen and (max-width:640px){#speedtest #gauge .gauge{max-height:260px}}#speedtest #gauge .result{padding:0;font-size:2em}@media only screen and (max-width:640px){#speedtest #gauge .result{font-size:1.2em}}#speedtest #progress{position:fixed;top:0;left:0;width:100vw}#speedtest #progress.progress{display:flex;height:3px;overflow:hidden;font-size:.75rem;background:none;border-radius:.25rem;overflow:visible}#speedtest #progress.progress .progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease;background:var(--blue);box-shadow:0 0 5px var(--blue)}#speedtest .result{padding:1em 0}@media only screen and (max-width:640px){#speedtest .result{padding:.5em 0}}#speedtest .result label{display:block;text-transform:uppercase;font-size:1.2em;margin-bottom:.2em;transition:color .6s ease;white-space:nowrap}@media only screen and (max-width:640px){#speedtest .result label{font-size:1em}}#speedtest .result.active label{color:var(--blue)}#speedtest .result .ip,#speedtest .result .org{display:block}#speedtest .result .value{font-size:2em;font-weight:lighter;line-height:1em;color:var(--primaryColor)}@media only screen and (max-width:640px){#speedtest .result .value{font-size:2.4em}}#speedtest .result .value:empty:before{content:"0.00"}#speedtest .result .value.ip:empty:before{content:"___.___.___.___"}#speedtest .result .unit{font-size:.8em;font-weight:lighter}@media only screen and (max-width:640px){#speedtest .result .unit{display:block;font-size:.9em}}#speedtest .result .org{font-size:1.2em;font-weight:lighter}#speedtest.ready{align-items:center;margin:auto}#speedtest.ready #download,#speedtest.ready #gauge,#speedtest.ready #ip,#speedtest.ready #jitter,#speedtest.ready #latency,#speedtest.ready #timestamp,#speedtest.ready #upload{display:none}#speedtest.ready #actions{padding:4em 0}#speedtest.ready #actions button#start{width:160px;font-size:1.6em}#speedtest.done #actions #timestamp{display:block}#speedtest.done #gauge{display:none}#speedtest.done #download,#speedtest.done #jitter,#speedtest.done #latency,#speedtest.done #upload{width:50%}