@font-face {
    font-family: 'Moderustic';
    src: url('fonts/Moderustic-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Moderustic';
    src: url('fonts/Moderustic-ExtraBold.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Moderustic';
    src: url('fonts/Moderustic-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Moderustic';
    src: url('fonts/Moderustic-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Moderustic';
    src: url('fonts/Moderustic-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Moderustic';
    src: url('fonts/Moderustic-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Moderustic';
    src: url('fonts/Moderustic-VariableFont_wght.ttf') format('truetype');
    font-weight: 300 800;
    font-style: normal;
    font-display: swap;
}

:root {
    --bg-color: #141526;
    --text-color: #535968;
    --text-color-a: #7c859b;
    --text-color-a-hover: #b3e9ff;
    --scrollbar-color: #2b2e54;
    --bg-color-w: #d5d5d8;
    --bg-color-f: #ffffff;
    --bg-color-newlink: #1cbfff;
    --color1: rgba(28, 191, 255, 0.4);
    --color2: rgba(172, 129, 185, 0.4);
    --color3: #4c38ff7c;
    --color4: #8c00ff8c;
}

speedtest button, hr, img {
    border: none;
}
speedtest table {
    border-collapse: collapse;
    border-spacing: 0;
}
speedtest select {
    outline: 0;
}
speedtest button {
    display: inline-block;
    background: 0 0;
    border-radius: 0;
    color: inherit;
    font: inherit;
    text-align: inherit;
    outline: 0;
    background-color: transparent;
    color: inherit;
    user-select: none;
}
speedtest button, a, select {
    cursor: pointer;
}
speedtest input[type=radio], input[type=checkbox] {
    cursor: pointer;
}
speedtest b, strong {
    font-weight: 500;
    display: inline;
}
speedtest a {
    color: inherit;
    text-decoration: inherit;
}
speedtest textarea, input {
    font-size: inherit;
}
speedtest select {
    border-radius: 3px;
}
speedtest textarea, input {
    border-radius: 3px;
    padding: 0 3px;
}
speedtest .svgIcon {
    width: 13px;
    height: 13px;
}
speedtest .svgIcon path {
    fill: currentColor;
}
speedtest .iconWrapper {
    display: flex;
}
speedtest .loader {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
}
speedtest .loader:before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 22px;
    animation: Rotate 1s linear infinite;
    border-radius: 100%;
    border-style: solid;
    border-width: 3px;
}
speedtest .container-main {
    margin: 0 auto;
    position: relative;
}
speedtest .headerContents {
    display: flex;
    align-items: center;
}
speedtest .logoWrapper {
    display: flex;
    align-items: center;
    color: #f9f9f9;
    user-select: none;
}
speedtest .logoWrapper .logoIcon {
    position: relative;
}
speedtest .logoWrapper .svgIcon {
    width: 1.333rem;
    height: 1.333rem;
}
speedtest .divider-fGntc {
    margin: 0 .6rem;
}
speedtest .logoWrapper span, .logoWrapper button {
    display: flex;
}
speedtest .nav-gAfej {
    display: flex;
    flex-grow: 1;
    justify-content: space-between;
    align-items: center;
}
speedtest .testNav-zMcl {
    display: flex;
}
speedtest .testSettings-pwLy {
    display: flex;
    align-items: center;
    padding-left: 0.66rem;
    position: relative;
}
speedtest .settingsButton-rKfy {
    display: flex;
    color: #c2c9cf;
}

speedtest .settingsButton-rKfy:hover {
    color: var(--bg-color-newlink);
}
speedtest .testSettings-pwLy .menu-jrbk {
    top: 100%;
    right: 0;
}
speedtest .disabled-kTch {
    pointer-events: none;
    opacity: 0.4;
}
speedtest .content-rtbh.disabled-kTch {
    background: rgba(0, 0, 0, 0.8);
}
speedtest .testSettings-pwLy .menu-jrbk label {
    display: flex;
    align-items: center;
    user-select: none;
}
speedtest .testSettings-pwLy .menu-jrbk input[type=number] {
    width: 100%; /* Ширина инпута */
    max-width: 60px; /* Максимальная ширина */
    padding: 3px 6px; /* Внутренние отступы */
    display: inline-block;
    background-color: #181a2d; /* Фон инпута */
    color: var(--bg-color-w); /* Цвет текста */
    border: 2px solid var(--scrollbar-color); /* Граница */
    border-radius: 5px; /* Скругленные углы */
    box-sizing: border-box; /* Для корректного расчета ширины */
    outline: none; /* Убираем стандартный фокус */
    font-size: 14px; /* Размер текста */
    transition: all 0.2s ease-in-out; /* Плавный переход для всех свойств */
}
speedtest .testSettings-pwLy .menu-jrbk input[type=number]:hover {
    border-color: var(--bg-color-newlink);
}
speedtest .testSettings-pwLy .menu-jrbk select {
    min-width: 50px;
    max-width: 180px;
}
speedtest .content-rtbh .menuItem-jrbk:first-child select {
    width: 180px;
}

speedtest .desktop .settingsButton-rKfy:hover {
    color: #fff;
}
speedtest .settingsButton-rKfy svg {
    width: 1.3rem;
    height: 1.3rem;
}
speedtest .pageContent {
    padding-bottom: 0.666rem;
}
speedtest .stageMain-kbsf {
    transition: opacity .3s ease;
}
speedtest .startButton {
    background-color: rgba(20, 21, 38, 0.5);
    position: absolute;
    width: 12.5em;
    height: 12.5em;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    text-align: center;
    border-radius: 50%;
    border: 0;
}
speedtest .desktop .startButton:hover {
    background-color: rgba(20, 21, 38, 1);
}
speedtest .startButton .buttonBorder, .startButton .buttonAnimatedBorder {
    position: absolute;
    top: 1px;
    left: 1px;
    width: calc(100% - 2px);
    height: calc(100% - 2px);
    border-radius: 50%;
    border: 3px solid #1cbfff;
    pointer-events: none;
}
speedtest .startButton .buttonText {
    font-size: 1.75em;
    font-size: 2.75em;
    font-family: 'Moderustic', sans-serif;
    font-weight: 600;
    color: var(--bg-color-f);
    white-space: nowrap;
}
speedtest .startButton .buttonBackground {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    opacity: 0.7;
    background: #141526;
    opacity: 0;
}
speedtest .test--main .buttonBorder {
    animation-name: buttonHeartbeat;
    animation-delay: .6s;
    animation-duration: 3.5s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-out;
}
speedtest .test--main .buttonAnimatedBorder {
    opacity: 0;
    animation-name: buttonRing;
    animation-delay: .6s;
    animation-duration: 3.5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

speedtest .tryAgain-EuG8d {
    width: 8rem;
    height: 8rem;
    top: 50%;
    transform: translate(-50%, -50%);
}
speedtest .tryAgain-EuG8d .buttonText {
    font-size: 1.16rem;
}
speedtest .tryAgain-EuG8d .buttonBorder {
    border-width: 2px;
    animation: none;
}

@keyframes buttonHeartbeat {
    0% {
        transform: scale(1);
    }
    8.333% {
        transform: scale(.980);
    }
    16.666% {
        transform: scale(1);
    }
}
@keyframes buttonRing {
    0% {
        opacity: 0;
        transform: scale(1);
    }
    12.5% {
        opacity: 0;
        transform: scale(.995);
    }
    16.667% {
        opacity: 1;
    }
    50% {
        opacity: 0;
        transform: scale(1.3);
    }
}


speedtest .centered-container {
    position: relative;
    top: 2rem;
    width: 100%;
    max-width: 450px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

speedtest .row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

speedtest .block-left, speedtest .block-right {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1;
    max-width: 48%;
}

speedtest .block-left {
    text-align: right;
}

speedtest .block-right {
    text-align: left;
}

@media (max-width: 575.98px) {
    speedtest .centered-container {
        height: auto;
        padding: 20px;
    }

    speedtest .row {
        flex-direction: column;
        align-items: center;
    }

    speedtest .block-left, speedtest .block-right {
        width: 100%;
        margin-bottom: 10px;
    }
}





speedtest .footerItem-details {
    display: flex;
    align-items: center;
    gap: 10px;
}

speedtest .footerItem-icon svg {
    width: 19px;
    height: 19px;
    color: #ffffff;
}

speedtest .footerItem-details .loader-gfkb {
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
    height: 40px;
}
speedtest .footerItem-details .footerItem-icon {
    width: 40px !important;
    height: 40px !important;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    border: 1.5px solid #535968;
    overflow: hidden;
    box-sizing: border-box;
}

speedtest .footerItem-details .footerItem-icon svg {
    width: 22px !important;
    height: 22px !important;
    color: #535968;
    display: block;
    margin: 0 auto;
    fill: currentColor;
}

speedtest .footerItem {
    display: flex;
    justify-content: center;
    align-items: center;
}

speedtest .icon-divider {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 8px; /* Отступы между элементами */
    font-size: 12px; /* Размер иконки */
    color: #ccc; /* Цвет иконки */
}

speedtest .flex-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

speedtest .footerItem-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

speedtest .footerItem-right {
    text-align: right;
}

speedtest .footerItem-name {
    margin-top: 4.5rem;
    text-align: center;
    text-transform: lowercase;
    font-size: 12px;
    padding: 10px;
    color: var(--bg-color-w);
}

/* tooltip */
speedtest .all-tooltip {
    position: absolute;
    background-color: rgba(53, 54, 80, 0.4); /* Полупрозрачный фон */
    backdrop-filter: blur(5px); /* Размытие фона за элементом */
    color: white;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 0.85rem;
    text-transform: lowercase;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 1000;
}

speedtest .footerItem-title {
    font-family: 'Moderustic', sans-serif;
    font-weight: 400;
    letter-spacing: 1px;
    font-size: 15px;
    color: var(--bg-color-w);
    white-space: nowrap;       /* Запрещает перенос текста на новую строку */
    overflow: hidden;          /* Обрезает текст, который выходит за пределы */
    text-overflow: ellipsis;   /* Добавляет многоточие (...) в конце обрезанного текста */
    max-width: 160px;          /* Установите нужную максимальную ширину */
}

speedtest a.footerItem-title {
    font-family: 'Moderustic', sans-serif;
    font-weight: 400;
    letter-spacing: 1px;
    font-size: 15px;
    color: var(--bg-color-w);
    text-transform: none;
    white-space: nowrap;       /* Запрещает перенос текста на новую строку */
    overflow: hidden;          /* Обрезает текст, который выходит за пределы */
    text-overflow: ellipsis;   /* Добавляет многоточие (...) в конце обрезанного текста */
    max-width: 160px;          /* Установите нужную максимальную ширину */
    transition: all 0.1s ease-in-out;
}

speedtest a.footerItem-title:hover {
    color: var(--bg-color-newlink);
}

speedtest .footerItem-description {
    font-size: 14px;
    color: var(--bg-color-w);
}

speedtest .testModeToggle-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 2rem;
}

speedtest .center-content {
    display: flex;
    justify-content: center;
    text-align: center;
}

speedtest .footerItem-title.itemName {
    line-height: 1.6;
}

speedtest .testModeToggle-button {
    display: inline-block;
    padding: 2px 7px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: bold;
    color: var(--bg-color-w);
    background-color: var(--bg-color);
    border: 1px solid var(--bg-color-newlink);
    border-radius: 3px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    text-align: center;
    text-transform: uppercase;
    margin: 0 2px;
    user-select: none;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

speedtest .testModeToggle-button.active {
    background-color: var(--bg-color-newlink);
    color: var(--bg-color);
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
}

speedtest .testModeToggle-divider svg {
    position: relative;
    top: -2px;
    width: 16px;
    height: 16px;
    color: var(--text-color);
}

speedtest .desktop .testStage:not(.test--started) .testModeToggle-button:not(.active):hover {
    color: #1cbfff;
    text-decoration: underline
}

speedtest .testModeToggle-button:not(.active) {
    color: #d5d5d8
}

speedtest .testModeToggle-divider {
    display: inline-block;
    width: 18px;
    text-align: center
}

speedtest .test--started .testModeToggle-button {
    cursor: default
}

speedtest .textHolder {
    color: var(--text-color-a);
}

speedtest a.textHolder {
    color: var(--bg-color-w);
}

speedtest a.textHolder:hover {
    color: var(--bg-color-newlink);
}

speedtest .testEngine {
    position: relative;
    width: 312px;
    height: 312px;
    margin: 0 auto;
    font-size: 16px;
    color: #8f8f8f
}

speedtest .gaugeContainer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    cursor: default;
    overflow: hidden
}

speedtest .gaugeIcon {
    position: absolute;
    width: 100%;
    height: 100%;
    transform: rotate(139deg)
}

speedtest .gaugeVectorIcon {
    width: 100%;
    height: 100%
}

speedtest .strokeBackground {
    stroke: #0b0c1b
}

speedtest .gaugeCircle {
    fill: transparent;
    stroke: #1e1f34;
    stroke-width: 8px
}

speedtest .gaugeCircleBackground {
    fill: #1e1f34;
    stroke: none;
    stroke-width: 0
}

speedtest .gaugeCircleLoadingBackground {
    fill: #0b0c1b;
    stroke: none;
    stroke-width: 0
}

speedtest .gaugeCircleCurrentSpeed {
    stroke: #1cbfff;
    stroke-dasharray: 404px
}

speedtest .upload-QvMr .gaugeCircleCurrentSpeed {
    stroke: #bf71ff
}

speedtest .gaugeCircleStrokeLeft {
    stroke-dasharray: 146px
}

speedtest .gaugeCircleStrokeRight {
    stroke-dashoffset: 0;
    stroke-dasharray: 210px
}

speedtest .gaugeInner,.incrementsContainer {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0
}

speedtest .incrementsContainer {
    user-select: none
}

speedtest .increment {
    position: absolute;
    width: 34px;
    height: 20px;
    font-size: 1.125em;
    font-weight: 500;
    opacity: .5;
    transition: opacity .2s linear
}

speedtest .increment--0 {
    top: 70%;
    left: 20%;
    text-align: left
}

speedtest .increment--1 {
    top: 51.5%;
    left: 12%;
    text-align: left
}

speedtest .increment--2 {
    top: 31%;
    left: 15%;
    text-align: left
}

speedtest .increment--3 {
    top: 17%;
    left: 27%;
    text-align: left
}

speedtest .increment--4 {
    top: 10.5%;
    left: 46.5%;
    text-align: left
}

speedtest .increment--5 {
    top: 17%;
    right: 27.5%;
    text-align: right
}

speedtest .increment--6 {
    top: 31%;
    right: 15%;
    text-align: right
}

speedtest .increment--7 {
    top: 51.5%;
    right: 12%;
    text-align: right
}

speedtest .increment--8 {
    top: 70%;
    right: 20%;
    text-align: right
}

speedtest .incrementOn--0 .increment--0,.incrementOn--1 .increment--1,.incrementOn--2 .increment--2,.incrementOn--3 .increment--3,.incrementOn--4 .increment--4,.incrementOn--5 .increment--5,.incrementOn--6 .increment--6,.incrementOn--7 .increment--7,.incrementOn--8 .increment--8 {
    opacity: .9
}

speedtest .gaugeState {
    position: absolute;
    bottom: 40px;
    width: 100%;
    text-align: center
}

speedtest .gaugeNeedle {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.875em;
    height: 11.25em;
    margin-top: -5.625em;
    margin-left: -.937em;
    transform: rotate(49deg);
    color: #fff;
    z-index: 10
}

speedtest .gaugeNeedle,.gaugeCircleCurrentSpeed {
    transition: transform .39s ease-out,stroke-dashoffset .39s ease-out
}

speedtest .gaugeNeedle path {
    fill: url(#needleGradient)
}

speedtest circle {
    fill: none;
    stroke-width: 10;
}

speedtest .gaugeNeedle svg {
    width: 100%;
    height: 100%
}

speedtest .speedDetailsNumber {
    font-size: 2.15em
}

speedtest .valueNumber-vgKp {
    font-family: 'Roboto Condensed',sans-serif;
    font-weight: 300
}

speedtest .speedDetailsUnit {
    display: flex;
    justify-content: center;
    align-items: center
}

speedtest .speedDetailsIcon {
    display: inline-flex;
    margin-right: .4rem;
    transition: transform .2s
}

speedtest .download-QvMr .speedDetailsIcon {
    transform: rotate(180deg)
}

speedtest .open-m6jh .buttonAnimatedBorder,.open-m6jh .buttonBorder {
    animation: none
}

speedtest .open-m6jh .buttonBackground {
    animation: FadeIn .3s linear forwards
}

speedtest .open-m6jh.startButton {
    animation: openButton .3s ease-out .2s forwards
}

speedtest .open-m6jh .gaugeCircleLoadingBackground {
    animation: openGaugeCircleLoadingBackground .2s ease-out .1s backwards
}

speedtest .open-m6jh .gaugeCircleStrokeLeft {
    animation: openGaugeCircleLeft .15s ease-out .3s backwards
}

speedtest .open-m6jh .gaugeCircleStrokeRight {
    animation: openGaugeCircleRight .15s ease-out .3s backwards
}

speedtest .open-m6jh .gaugeInner {
    animation: FadeIn .3s linear .45s backwards
}

speedtest .close-m6jh .gaugeInner {
    animation: FadeOut .2s linear forwards
}

speedtest .close-m6jh .gaugeCircleStrokeLeft {
    animation: closeGaugeCircleLeft .2s linear .2s forwards
}

speedtest .close-m6jh .gaugeCircleStrokeRight {
    animation: closeGaugeCircleRight .2s linear .2s forwards
}

speedtest .close-m6jh .gaugeCircleLoadingBackground {
    animation: closeGaugeCircleLoadingBackground .2s linear .4s forwards
}

speedtest .close-m6jh.startButton {
    animation: closeButton .3s ease-out backwards;
    pointer-events: none
}

speedtest .close-m6jh .buttonBackground {
    animation: FadeOut .3s linear backwards
}

speedtest .close-m6jh .buttonText {
    animation: closeButtonText .3s ease-out both
}

@keyframes openGaugeCircleLoadingBackground {
    0% {
        r: 0
    }

    100% {
        r: 42.2
    }
}

@keyframes openGaugeCircleLeft {
    0% {
        stroke-dasharray: 124px
    }

    100% {
        stroke-dasharray: 146px
    }
}

@keyframes openGaugeCircleRight {
    0% {
        stroke-dasharray: 251px
    }

    100% {
        stroke-dasharray: 210px
    }
}

@keyframes closeGaugeCircleLeft {
    0% {
        stroke-dasharray: 146px
    }

    100% {
        stroke-dasharray: 124px
    }
}

@keyframes closeGaugeCircleRight {
    0% {
        stroke-dasharray: 210px
    }

    100% {
        stroke-dasharray: 251px
    }
}

@keyframes closeGaugeCircleLoadingBackground {
    0% {
        r: 42.2
    }

    100% {
        r: 0
    }
}

@keyframes openButton {
    50% {
        top: 50%;
        transform: translate(-50%,-50%)
    }

    100% {
        top: 50%;
        transform: translate(-50%,-50%);
        width: 100%;
        height: 100%
    }
}

@keyframes closeButton {
    0% {
        width: 100%;
        height: 100%
    }

    100% {
        width: 12rem;
        height: 12rem
    }
}

@keyframes closeButtonText {
    0% {
        font-size: 2.7em
    }

    100% {
        font-size: 1.16rem
    }
}

speedtest .hidden {
    display: none
}

speedtest .unseen {
    opacity: 0;
    pointer-events: none
}

speedtest .resultsArea {
    max-width: 420px;
    margin: 0 auto;
    margin-bottom: 1rem;
    color: #8f8f8f
}

speedtest .resultsContainer {
    display: flex;
    opacity: 0;
    pointer-events: none
}

speedtest .test--opened .resultsContainer {
    pointer-events: all;
    animation: FadeIn .25s linear .3s forwards
}

speedtest .resultsData {
    display: flex;
    flex-direction: column;
    flex-grow: 1
}

speedtest .resultType {
    display: flex
}

speedtest .resultPing_item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
    text-align: right;
    padding: 0 .666rem;
    margin: 0 0 .666rem;
    padding-right: 1.466rem
}

speedtest .resultPing_item:last-child {
    padding-right: 0;
    padding-left: 1.466rem;
    border-left: 1px solid #ffffff6e
}

speedtest .resultPing_itemText {
    margin-left: 6px
}

speedtest .stageClose-eJsd {
    padding: 0 .666rem 0 0
}

speedtest .closeButton-fQtb {
    display: flex;
    color: #fff;
    opacity: .95;
    filter: drop-shadow(1px 2px 1px rgba(0,0,0,.95));
    user-select: none
}

speedtest .closeButton-fQtb:hover {
    color: var(--bg-color-newlink);
}

speedtest .closeButton-fQtb svg {
    width: 1rem;
    height: 1rem
}

speedtest .resultItem {
    position: relative;
    width: 50%;
    padding-right: .8rem
}

speedtest .resultItem.resultUpload {
    padding: 0 0 0 .8rem
}

speedtest .resultContainer {
    position: relative;
    padding: .666rem;
    padding-bottom: 50px
}

speedtest .resultContainer:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 80%;
    background-image: linear-gradient(#0b0c1b 20%,transparent 80%);
    border-radius: 6px;
    z-index: -5;
    opacity: 0;
    transition: opacity .3s linear
}

speedtest .resultBody {
    padding-left: 1.333rem
}

speedtest .resultTitle {
    margin-left: 6px
}

speedtest .resultHeader {
    display: flex;
    align-items: center
}

speedtest .resultHeader .resultUnit {
    margin-left: 5px
}

speedtest .resultDownload .svgIcon,.download-QvMr .speedDetailsIcon .svgIcon {
    color: #1cbfff
}

speedtest .resultUpload .svgIcon,.upload-QvMr .speedDetailsIcon .svgIcon {
    color: #bf71ff
}

speedtest .resultValue {
    font-size: 2.35rem
}

speedtest .resultGraph {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 45px;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    overflow: hidden
}

speedtest .resultGraph .graph {
    position: absolute;
    width: 100%;
    height: 100%
}

speedtest .resultGraph .chart {
    fill: #1cbfff
}

speedtest .resultUpload .resultGraph .chart {
    fill: #bf71ff
}

speedtest .resultGraph .line {
    fill: none;
    stroke: rgba(148,175,200,.5);
    stroke-width: 1px
}

speedtest .test--download .resultDownload .resultContainer:before,.test--upload .resultUpload .resultContainer:before {
    opacity: 1
}

speedtest .log {
    position: absolute;
    width: 0;
    height: 0;
    font-size: 30px;
    overflow: hidden;
}
speedtest .icrementNumber-vgKp {
    font-weight: 500;
}
speedtest .consoleToggleButton {
    padding: 0.466rem 0.333rem;
    user-select: none;
    color: var(--bg-color-w);
}
speedtest .consoleToggleButton:hover {
    color: var(--bg-color-newlink);
}
speedtest .desktop .consoleToggleButton:hover {
    text-decoration: underline;
}
speedtest .testConsoleWrapper {
    padding: 10px 0;
    opacity: .9;
}
speedtest .console-e2Lfg {
    display: flex;
    flex-direction: column;
    position: relative;
}
speedtest .consoleButton-mHsq {
    position: absolute;
    right: 0;
    width: 40px;
    height: 40px;
    border: 0;
    background: transparent;
}
speedtest .console-Sq3NP {
    width: 100%;
    background: #000;
    color: #fff;
    min-height: 19.66rem; /* 297px */
    min-height: 18.1rem;
    resize: vertical;
    overflow-y: scroll;
    padding: 3px 8px;
    font-size: 13.333px;
    line-height: 1.6rem;
    outline: 0;
    border: 1px solid #d1d1d1;
    border-radius: 5px;
    cursor: default;
}


speedtest .button-r8eYj {
    display: inline-block;
    padding: 0.26rem 0.66rem;
    border: 2px solid #1cbfff;
    border-radius: 5px;
    font-weight: 500;
}
speedtest .container-main:not(.test--main) .testStage, .container-main:not(.test--ping) .pingStage,  .container-main:not(.test--network) .networkStage {
    height: 0;
    overflow: hidden;
}
speedtest .start-inBnq.disabled {
    pointer-events: none;
    opacity: .5;
}
speedtest .startButton-twMcg {
    display: flex;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    color: var(--bg-color-f);
    font-family: 'Moderustic', sans-serif;
    font-weight: 600;
    font-size: 1.46rem;
    width: 6.6rem;
    height: 6.6rem;
    border-radius: 50%;
    border: 3px solid var(--bg-color-newlink);
}
/*
speedtest .desktop .startButton-twMcg:not(.disabled):hover, .desktop .button-r8eYj:hover, .desktop .select-fquMx:hover + .changeButton-xncHv {
    background: #14202b;
}
*/
speedtest .contents-vr4n {
    display: flex;
}
speedtest .selectedServer-xncHv {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    margin-left: 1.33rem;
}
speedtest .serverDetails-xncHv {
    flex-grow: 1;
    font-size: 1.1rem;
    padding-right: 1.33rem;
    color: var(--bg-color-w);
}
speedtest .testSettings-qRnpi {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
speedtest .changeServer-xncHv {
    flex-shrink: 0;
    color: var(--bg-color-w);
    position: relative;
}
speedtest .changeButton-xncHv {
    border: 1px solid var(--bg-color-newlink);
    padding: 5px 10px;
    border-radius: 5px;
    pointer-events: none;
}
speedtest .changeServer-xncHv select {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 5px;
    cursor: pointer;
    opacity: 0;
}
speedtest .buttonWrapper-xvYef {
    position: relative;
}
speedtest .button-xvYef {
    padding: 0.4rem 0.66rem;
    display: flex;
    align-items: center;
    color: #c2c9cf;
}
speedtest .desktop .button-xvYef:hover {
    color: #fff;
}
speedtest .button-xvYef svg {
    width: 1.3rem;
    height: 1.3rem;
}
speedtest .buttonWrapper-xvYef .menu-jrbk {
    right: 5px;
    top: 100%;
    margin-top: 0.66rem;
}
speedtest .menu-jrbk {
    position: absolute;
    z-index: 20;
}
speedtest .menuInner-jrbk {
    margin-top: 1rem;
    position: relative;
    top: calc(100% + 10px); /* Располагаем ниже основной кнопки выбора */
    width: max-content;
    background-color: rgba(38, 39, 59, 0.5); /* Полупрозрачный фон */
    backdrop-filter: blur(5px); /* Размытие фона за элементом */
    overflow: visible;
    transition: all 0.3s ease-in-out;
    font-size: 14px;
    z-index: 10;
    white-space: nowrap;
    border-radius: 7px 7px 7px 7px;
    padding: 4px;
    z-index: 110;
}
@media (max-width: 575.98px) { /* Для мобильных устройств */
    speedtest .menuInner-jrbk {
        backdrop-filter: none; /* Отключаем размытие */
        background-color: rgba(38, 39, 59, 0.9); /* Увеличиваем непрозрачность фона */
    }
}
speedtest .menuInner-jrbk::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 250px; /* заменяй это число, пока не попадёшь в нужную позицию */
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 8px solid rgba(38, 39, 59, 0.5);
    z-index: 11;
    pointer-events: none;
}

speedtest .itemsContainer-tpvb::-webkit-scrollbar {
    width: 12px;
}

speedtest .itemsContainer-tpvb::-webkit-scrollbar-track {
    background: none;
}

speedtest .itemsContainer-tpvb::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-color);
    border: 4px solid var(--bg-color);
}
speedtest .menuItem-jrbk {
    padding: 0.533rem 0.666rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
speedtest .menuItem-jrbk span {
    color: var(--bg-color-w);
    padding-right: 8px;
    white-space: nowrap;
}

speedtest .menuItem-jrbk input[type=text] {
    width: 100%;
    padding: 8px 12px;
    display: inline-block;
    background-color: #181a2d; /* Фон инпута */
    color: var(--bg-color-w); /* Цвет текста */
    border: 2px solid var(--scrollbar-color);
    box-sizing: border-box;
    border-radius: 5px;
    transition: all 0.2s ease-in-out;
}

/* Удаление стандартных стрелок */
speedtest .menuItem-jrbk input[type="number"] {
    -moz-appearance: textfield; /* Для Firefox */
    -webkit-appearance: none; /* Для Webkit-браузеров */
    appearance: none;
}

/* Удаление стрелок на шагах */
speedtest .menuItem-jrbk input[type="number"]::-webkit-inner-spin-button,
speedtest .menuItem-jrbk input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Стилизация обводки и шрифта */
speedtest .menuItem-jrbk input[type="number"] {
    border: 1px solid #007bff; /* Цвет обводки */
    border-radius: 5px;
    padding: 5px;
    color: #fff; /* Цвет текста */
    background-color: #2b2e54; /* Цвет фона */
    font-size: 16px;
}

speedtest .menuItem-jrbk input[type=text]:hover {
    border-color: var(--bg-color-newlink);
}

speedtest .menuItem-jrbk input[type=text]:focus {
    outline: none;
    box-shadow: 0 0 0 0.1rem var(--scrollbar-color);
    opacity: 0.7;
}


speedtest select.select-crth {
    width: 100%;
    -webkit-appearance: button;
    -moz-appearance: button;
    border-radius: 5px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -webkit-padding-end: 20px;
    -moz-padding-end: 20px;
    -webkit-padding-start: 2px;
    -moz-padding-start: 2px;
    background-color: var(--bg-color); /* Фон инпута */
    /* Fallback color if gradients are not supported */
    background-position: center right;
    background-repeat: no-repeat;
    border: 2px solid var(--scrollbar-color);
    color: var(--bg-color-w); /* Цвет текста */
    font-size: inherit;
    margin: 0;
    overflow: hidden;
    padding-top: 2px;
    padding-bottom: 2px;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 5px 10px;
    transition: all 0.2s ease-in-out;
}

speedtest select.select-crth:hover {
    border-color: var(--bg-color-newlink);
}

speedtest .menuItem-jrbk select {
    width: 100%;
    -webkit-appearance: button;
    -moz-appearance: button;
    border-radius: 5px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -webkit-padding-end: 20px;
    -moz-padding-end: 20px;
    -webkit-padding-start: 2px;
    -moz-padding-start: 2px;
    background-color: #181a2d; /* Фон инпута */
    /* Fallback color if gradients are not supported */
    background-position: center right;
    background-repeat: no-repeat;
    border: 2px solid var(--scrollbar-color);
    color: var(--bg-color-w); /* Цвет текста */
    font-size: inherit;
    margin: 0;
    overflow: hidden;
    padding-top: 2px;
    padding-bottom: 2px;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 3px 6px;
    transition: all 0.2s ease-in-out;
}

speedtest .menuItem-jrbk select:hover {
    border-color: var(--bg-color-newlink);
}

speedtest .item-gxcv {
    flex-direction: column;
    align-items: flex-start;
}
speedtest .inputWrapper-hgjl {
    display: flex;
    margin-top: 5px;
}
speedtest .inputWrapper-hgjl input {
    display: block;
    padding: 4px 5px;
    border: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
speedtest .clearButton-ehkc {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 0.4rem;
    background: var(--scrollbar-color);
    color: var(--bg-color-newlink);
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}
speedtest .clearButton-ehkc svg {
    width: 11px;
    height: 11px;
}
speedtest .menuOverlay-jrbk {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 125vw;
    height: 125vh;
    background: rgba(0, 0, 0, 0.3);
    z-index: 100;
}
speedtest .pingItems-id3Lk {
    margin-top: 20px;
}
speedtest .pingItem-e3Lhk {
    display: flex;
    margin-bottom: 30px;
    padding-top: 10px;
    border-top: 1px dotted #51626a;
}
speedtest .pingItem-e3Lhk.close {
    pointer-events: none;
    animation: FadeOut .3s linear forwards;
}
speedtest .results-viKtf {
    width: 25%;
    text-align: center;
}
speedtest .serverDetails-twBep {
    display: flex;
    align-items: flex-start;
    font-weight: 500;
    padding: 5px 0;
}
speedtest .closeButton-twBep {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    opacity: 0.7;
    padding: 5px 3px;
}
speedtest .desktop .closeButton-twBep:hover {
    opacity: 1;
}
speedtest .closeButton-twBep svg {
    width: .86rem;
    height: .86rem;
}
speedtest .serverName-twBep {
    flex-grow: 1;
    align-self: center;
    padding-left: .4rem;
}
speedtest .result-x3Ayv {
    padding: 4px 0;
}
speedtest .graphWrapper-viKtf {
    display: flex;
    flex-grow: 1;
}
speedtest .graph-o1wfv {
    display: flex;
    flex-grow: 1;
    min-height: 140px;
    padding: 8px 8px 0 8px;
    position: relative;
    border: 2px solid var(--bg-color-newlink);
    border-radius: 8px;
    background: #111e25;
    user-select: none;
}
speedtest .graphInner-o1wfv, .graphItems-o1wfv {
    display: flex;
    flex-grow: 1;
    position: relative;
}
speedtest .graphItems-o1wfv div {
    position: relative;
    display: flex;
    width: 1%;
    padding-bottom: 14px;
}
speedtest .graphItems-o1wfv div:before {
    content: "";
    position: relative;
    width: 100%;
    height: 100%;
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    z-index: 5;
}
speedtest .graphItems-o1wfv div[a]:before {
    border-left: 1px solid rgba(255, 255, 255, 0.2);
}
speedtest .graphItems-o1wfv div:hover:before {
    border-left: 3px solid rgba(0, 0, 0, 1);
    left: -0.5px;
}
speedtest .graphItems-o1wfv div[a]:after {
    content: attr(index);
    position: absolute;
    left: 0;
    bottom: 1px;
    transform: translateX(-50%);
    font-weight: 500;
    font-size: 9px;
    pointer-events: none;
}
speedtest .graphTooltip-o1wfv {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    padding: 7px 12px;
    border: 2px solid #1c6a92;
    border-radius: 8px;
    background: #111e25;
    width: fit-content;
    pointer-events: none;
    z-index: 10;
}
speedtest .tooltipItem-o1wfv {
    color: #a4a4a4;
    font-size: 0.9rem;
    margin-bottom: 5px;
}
speedtest .lineWrapper-dnXzj {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: visible;
}
speedtest .lineWrapper-dnXzj polyline {
    fill: transparent;
    stroke: #d00000;
    stroke-width: 3px;
}

/*
 |
 |
 |
 */

 speedtest .start-BgYmU {
    display: flex;
    align-items: center;
}
speedtest .startButton-x4Jsv {
    display: flex;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    font-family: 'Moderustic', sans-serif;
    font-weight: 600;
    font-size: 1.46rem;
    color: var(--bg-color-f);
    width: 6.6rem;
    height: 6.6rem;
    border-radius: 50%;
    border: 3px solid var(--bg-color-newlink);
}
speedtest .desktop .startButton-x4Jsv:hover {
    background: #14202b;
}
speedtest .started-P5Hym .startButton-x4Jsv {
    border-color: #ff3535;
}
speedtest .desktop .started-P5Hym .startButton-x4Jsv:hover {
    background: #ff000012;
}
speedtest .started-P5Hym .startButton-x4Jsv span:first-child, .networkStage:not(.started-P5Hym) .startButton-x4Jsv span:last-child {
    display: none;
}
speedtest .configOptions-cs8qH {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    margin-left: 1.33rem;
}
speedtest .started-P5Hym .option-dfsj {
    pointer-events: none;
    opacity: 0.3;
}
speedtest .group-bjFqx {
    display: flex;
    align-items: center;
    width: 100%;
    position: relative;
}
speedtest .group-bjFqx:not(:first-child) {
    flex-wrap: wrap;
}
speedtest .group-bjFqx:not(:first-child) .item-Z9hxm {
    margin-top: 1rem;
}
speedtest .item-Z9hxm {
    display: flex;
}
speedtest .item-Z9hxm:not(:last-child) {
    margin-right: 1rem;
}
speedtest .urlButton-rdhw {
    display: flex;
    justify-content: space-between;
    width: 100%;
    border: 2px solid var(--scrollbar-color);
    border-radius: 5px;
    padding: 0.3rem 0 0.3rem 0.5rem;
    white-space: nowrap;
}
speedtest .selectButton-zGsn {
    padding: 0 6px;
    position: relative;
}
speedtest .select-crth {
    width: 50px;
    padding: 1px 0 1px 1px;
}
speedtest .menu-fgcv {
    width: 100%;
    top: 100%;
    left: 0;
    max-width: 350px;
    margin-top: -2px;
}
speedtest .itemsContainer-tpvb {
    max-height: 70vh;
    overflow-y: scroll;
}
speedtest .menu-fgcv .menuItem-jrbk {
    cursor: pointer;
    user-select: none;
    color: var(--bg-color-w);
    padding: 0;
    align-items: stretch;
}
speedtest .selectedIcon-wrpb {
    padding: 0 10px;
}
speedtest .menu-fgcv .menuItem-jrbk:not(.selected-wrpb) .selectedIcon-wrpb {
    opacity: 0;
}
speedtest .itemInner-ghrt {
    display: flex;
    overflow: hidden;
    flex-grow: 1;
}
speedtest .textUrl-sdsf {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 8px 0;
}
speedtest .inputUrl-sdsf {
    display: block;
    background: transparent;
    width: 100%;
    color: #fff;
    border: 0;
    padding: 8px 0;
}
speedtest .inputUrl-sdsf::placeholder {
    color: #a2a2a2;
}
speedtest .inputWrapper-ghjk {
    display: flex;
    width: 100%;
}
speedtest .clearButton-artp {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    padding: 0 5px;
}
speedtest .clearButton-artp svg {
    width: 11px;
    height: 11px;
}
speedtest .multiSelect-cbgh {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 10px;
}
speedtest .multiSelect-cbgh svg {
    width: 1.2rem;
    height: 1.2rem;
}
speedtest .menuItem-jrbk:not(.selected-wrpb) .multiSelect-cbgh path:last-child {
    opacity: 0;
}
speedtest .switch-dU4km {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
}
speedtest .input-dU4km {
    width: 0;
    height: 0;
    opacity: 0;
}
speedtest .slider-dU4km {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    position: relative;
    cursor: pointer;
    width: 1.8rem;
    height: 1rem;
    background-color: transparent;
    box-shadow: 0 0 0px 1px #f1f1f1;
    border-radius: 20px;
    transition: 0.2s;
}
speedtest .slider-dU4km:before {
    content: "";
    display: block;
    height: 0.6rem;
    width: 0.6rem;
    background-color: #fff;
    border-radius: 50%;
    transform: translateX(0.2rem);
    transition: .2s;
}
speedtest .input-dU4km:checked + .slider-dU4km {
    background-color: #2196f3;
}
speedtest .input-dU4km:checked + .slider-dU4km:before {
    transform: translateX(170%);
}
speedtest .text-dU4km {
    margin-left: 0.533rem;
}
speedtest .selectedServers-jgc {
    color: #7e8288;
}
speedtest .selectedServers-jgc svg {
    width: 1.2rem;
    height: 1.2rem;
    margin-right: 0.5rem;
    flex-shrink: 0;
}

speedtest .content-LJepA {
    margin-top: 0.66rem;
}
speedtest .engine-d3WGk {
    flex-grow: 1;
}
speedtest .header-cSqe2 {
    display: flex;
}
speedtest .measuresDetails-Cs7YH {
    display: flex;
    flex-grow: 1;
    position: relative;
}
speedtest .doneRequestsMenu-rsgl {
    top: 100%;
    left: 0;
}
speedtest .doneRequestsMenu-rsgl .menuInner-jrbk {
    padding: 0.666rem;
}
speedtest .requests-bvzp {
    display: flex;
    margin-top: 0.666rem;
    line-height: 2.3;
}
speedtest .requestsUrls-bvzp {
    width: 320px;
    max-width: calc(100vw - 140px);
}
speedtest .textUrl-bvzp {
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
speedtest .requests-bvzp textarea {
    flex-shrink: 0;
    background: transparent;
    border: none;
    outline: none;
    resize: none;
    font-size: inherit;
    color: #fff;
    line-height: inherit;
    cursor: default;
    width: 7em;
    text-align: right;
}
speedtest .item-Cs7YH {
    color: #8d8f94;
    font-weight: 500;
    padding: 6px 0;
}
speedtest .item-Cs7YH:not(:last-child) {
    margin-right: 1rem;
}
speedtest .wrapper-tKbg {
    width: 250px;
    height: 215px;
    overflow: hidden;
    margin: 1rem auto 0 auto;
}
speedtest .gauge-dJ3hc {
    width: 250px;
    height: 250px;
    font-size: 13px;
    position: relative;
}
speedtest .gauge-dJ3hc .gaugeContainer {
    font-size: inherit;
}

speedtest .start-inBnq {
    position: relative;
}
speedtest .selectingServer-ghtk {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    align-items: center;
}
speedtest .testWrapper:not(.ready-ctpd) .contents-vr4n {
    opacity: 0;
    pointer-events: none;
}
speedtest .ready-ctpd .selectingServer-ghtk, .ready-ctpd .loader-gfkb {
    display: none;
}
speedtest .selectingServer_loader-ghtk {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 6.6rem;
    height: 6.6rem;
}
speedtest .selectingServer_text-ghtk {
    margin-left: 1.33rem;
}

@media screen and (min-width: 890px){
    speedtest .content-LJepA {
        display: flex;
        align-items: center;
    }
    speedtest .wrapper-tKbg {
        margin: 1rem 0 0 1rem;
    }
}
@media screen and (max-width: 750px){
    speedtest .console-Sq3NP {
        font-size: 1.8vw;
    }
    speedtest .pingItem-e3Lhk {
        display: block;
    }
    speedtest .results-hn8Gk {
        margin-bottom: 12px;
    }
    speedtest .results-viKtf, .graphWrapper-viKtf {
        width: 100%;
    }
    speedtest .result-x3Ayv {
        display: inline-block;
        padding: 4px 6px;
        flex-basis: 100%;
        font-size: 10px;
    }
    speedtest .graphItems-o1wfv div[a]:after {
        font-size: 6px;
    }
    speedtest .graphItems-o1wfv div {
        padding-bottom: 9px;
    }
    speedtest .lineWrapper-dnXzj polyline {
        stroke-width: 2px;
    }
}
@media screen and (max-width: 650px){
    speedtest .testEngine {
        width: 250px;
        height: 250px;
        font-size: 13px;
    }
    speedtest .wrapper-tKbg {
        width: 220px;
        height: 200px;
    }
    speedtest .gauge-dJ3hc {
        width: 220px;
        height: 220px;
        font-size: 12px;
    }
    speedtest .gaugeState {
        bottom: 25px;
    }
    speedtest .measuresDetails-Cs7YH {
        font-size: 0.9rem;
    }
}
@keyframes openResultsArea {
    0% {
        max-width: 0;
    }
    100% {
        max-width: 52%;
    }
}
@keyframes FadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@keyframes FadeOut {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}
@keyframes Rotate {
    0% {
        transform: rotateZ(-360deg);
    }
    100% {
        transform: rotateZ(0deg);
    }
}
speedtest .unseen-u {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
speedtest .hide-u {
    display: none;
}
speedtest .hidden {
    display: none;
    display: none !important;
}

.text-fgh {
    position: relative;
    top: -0.1rem;
}