body,html{margin:0;height:100vh;overflow-x:hidden;background-color:var(--background);font-family:Inter,sans-serif;font-weight:600;position:relative}body:before{content:"";position:fixed;top:-30%;left:50%;transform:translate(-50%);width:150%;height:80%;background:radial-gradient(ellipse at center,rgba(16,185,129,.06) 0%,transparent 60%);pointer-events:none;z-index:0}#root{position:relative;z-index:1}::-webkit-scrollbar{width:12px;background:var(--background)}::-webkit-scrollbar-track{background:var(--background);border-radius:10px;margin:5px}::-webkit-scrollbar-thumb{background:var(--light-gray);border-radius:10px;border:3px solid var(--background);min-height:40px}::-webkit-scrollbar-thumb:hover{background:var(--subtext)}::-webkit-scrollbar-thumb:active{background:var(--white)}.speedtest-icon{font-size:26pt;color:var(--white);margin-right:10px}.container-icon{width:35px;height:35px;color:var(--white);font-size:26pt}.help-icon{cursor:help}.icon-red{color:var(--accent-danger)}.icon-error{color:var(--accent-danger);filter:brightness(.9)}.icon-green{color:var(--accent-primary)}.icon-orange{color:var(--accent-warning)}.icon-blue{color:#3b82f6}main{display:flex;flex-direction:column;align-items:center;margin-left:1rem;margin-right:1rem}@keyframes opacity{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:scale(.95);filter:blur(2px)}to{opacity:1;transform:scale(1)}}@keyframes fadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95);filter:blur(2px)}}@media(max-width:730px){::-webkit-scrollbar{width:5px}}.lds-ellipsis{display:inline-block;position:relative;width:80px;height:80px}.lds-ellipsis div{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:var(--white);animation-timing-function:cubic-bezier(0,1,1,0)}.lds-ellipsis div:nth-child(1){left:8px;animation:lds-ellipsis1 .6s infinite}.lds-ellipsis div:nth-child(2){left:8px;animation:lds-ellipsis2 .6s infinite}.lds-ellipsis div:nth-child(3){left:32px;animation:lds-ellipsis2 .6s infinite}.lds-ellipsis div:nth-child(4){left:56px;animation:lds-ellipsis3 .6s infinite}@keyframes lds-ellipsis1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0)}to{transform:translate(24px)}}header{position:relative;z-index:200}.header-main{margin-top:3rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--white);padding:0 10%}.header-right{display:flex;justify-content:flex-end;gap:15px}.header-main *{font-size:24pt}.header-left{display:flex;gap:.5rem;align-items:center;justify-content:flex-start;overflow:hidden;text-overflow:ellipsis}.demo-info{display:flex;cursor:pointer;align-items:center;justify-content:center;font-size:14pt;background-color:var(--dark-gray);color:var(--accent-primary);margin:0}.header-main h2{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;border-radius:.75rem;margin:0}.header-logo{width:32px;height:32px;border-radius:6px;transition:transform .2s ease}.header-about{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease,border-color .2s ease;border:1px solid transparent}.header-about:hover{background-color:var(--dark-gray);border-color:var(--light-gray)}.header-about:hover .header-logo{transform:rotate(-5deg) scale(1.1)}.header-icon{cursor:pointer;display:flex;transition:all .15s ease-in-out;width:30px;height:30px;color:var(--subtext)}.header-icon:hover{transform:scale(1.1);color:var(--accent-primary)}.test-running{animation:pulse 2s infinite;border-radius:150px;color:var(--accent-primary)}.update-icon{animation:pulse-update 2s infinite;border-radius:150px}.update-icon:hover{color:var(--accent-warning);filter:brightness(1.2)}@keyframes pulse-update{0%{box-shadow:0 0 0 0 var(--accent-warning)}70%{box-shadow:0 0 0 10px transparent}to{box-shadow:0 0 0 0 transparent}}@media(max-width:768px){.header-main{grid-template-columns:1fr 1fr}}@media screen and (max-width:650px){.header-left{flex-direction:column}}@media(max-width:530px){.header-left div{margin-right:0}.header-icon{width:25px;height:25px}}@media(max-width:480px){.header-icon{width:20px;height:20px}}@media screen and (max-width:365px){.demo-info{font-size:12pt;padding:0}}.dropdown{visibility:visible;opacity:1;transition:all .15s ease-in-out;transform:translate(0) translateY(0) scale(1);-webkit-user-select:none;user-select:none}.dropdown-content{float:right;margin-right:10%;display:inline-block;position:absolute;width:auto;overflow:auto;border-radius:10px;box-shadow:0 8px 16px #0000004d;border:1px solid var(--light-gray);right:0;z-index:200;padding:15px;background-color:var(--dark-gray);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.dropdown-invisible{visibility:hidden;opacity:0;transform:translate(20px) translateY(-10px) scale(.98)}.dropdown-content h2{color:var(--subtext);margin:0;font-size:16pt}.dropdown-hr{border:1px solid var(--light-gray);margin:5px;width:30px}.dropdown-entries{margin-top:10px;display:flex;flex-direction:column}.dropdown-item{margin:5px 10px;display:flex;align-items:center;cursor:pointer;color:var(--white)}.dropdown-item *{margin:0;font-size:16pt;font-weight:500}.dropdown-item:hover{color:var(--accent-primary)}.dropdown-item svg{width:25px;height:25px}.dropdown-item h3{margin-left:15px}.center{display:flex;justify-content:center}@media(max-width:390px){.dropdown-content{margin-right:0}}.welcome-banner{width:32rem;display:flex;flex-direction:column;justify-content:space-between;-webkit-user-select:none;user-select:none}.welcome-banner .welcome-inner{height:100%}.welcome-banner .welcome-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem}.welcome-banner .welcome-actions h3{margin:0;font-size:1rem;color:var(--subtext);font-weight:500}.welcome-banner .welcome-actions .dialog-btn{padding:.6rem 1.5rem;border-radius:.6rem}.welcome-banner .slide-in{animation:slide-in .5s forwards}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media screen and (max-width:600px){.welcome-banner{width:100%}.slide-in{animation:slide-in .5s forwards}}.welcome-greetings{display:flex;margin:1rem 0;flex-direction:column;align-items:center;height:100%;justify-content:center;text-align:center;gap:1.25rem}.welcome-greetings img{height:5rem}.welcome-greetings h2{margin:0;font-size:1.75rem;font-weight:600;color:var(--white)}.welcome-greetings p{margin:0;padding-left:2rem;padding-right:2rem;font-size:1.1rem;color:var(--subtext)}.provider-chooser h2{margin:0 0 .75rem;font-size:1.15rem;font-weight:500;color:var(--subtext)}.provider-chooser p{margin:0;font-size:1rem;color:var(--subtext)}.provider-chooser .provider-list{margin-top:1.25rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.provider-chooser .provider-item{display:flex;align-items:center;padding:.75rem 1rem;gap:.75rem;border-radius:.75rem;border:1px solid var(--light-gray);color:var(--subtext);cursor:pointer;transition:all .15s ease}.provider-chooser .provider-item img{width:2.25rem;height:2.25rem;border-radius:.5rem;flex-shrink:0}.provider-chooser .provider-item h2{margin:0;font-size:1.05rem;font-weight:500}.provider-chooser .provider-item:hover{background-color:var(--darker-gray)}.provider-chooser .provider-item-active{background-color:var(--light-gray);border-color:var(--accent-primary)}.provider-chooser .provider-item-active h2{color:var(--white)}.provider-chooser .provider-item-active:hover{background-color:var(--light-gray)}.provider-dialog-wrapper{width:28rem;max-width:95vw}.provider-dialog-wrapper .dialog-main{display:block}.provider-content{margin:1rem .5rem;-webkit-user-select:none;user-select:none}.provider-list{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.25rem}.provider-item{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem;border-radius:.6rem;border:1px solid var(--light-gray);cursor:pointer;transition:all .15s ease}.provider-item:hover{background-color:var(--darker-gray)}.provider-item img{width:1.5rem;height:1.5rem;border-radius:.3rem;flex-shrink:0}.provider-item h3{margin:0;font-size:.85rem;font-weight:500;color:var(--subtext)}.provider-item-active{background-color:var(--light-gray);border-color:var(--accent-primary)}.provider-item-active h3{color:var(--white)}.provider-item-active:hover{background-color:var(--light-gray)}.provider-settings{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--light-gray);display:flex;flex-direction:column;gap:.75rem}.provider-setting{display:flex;align-items:center;justify-content:space-between;gap:1rem}.provider-setting-label{display:flex;align-items:center;gap:.6rem;flex-shrink:0;white-space:nowrap}.provider-setting-label svg{color:var(--subtext);font-size:1rem;width:1rem}.provider-setting-label h3{margin:0;font-size:.95rem;font-weight:500;color:var(--subtext)}.provider-input{width:14rem;min-width:14rem;max-width:14rem;height:2.5rem;box-sizing:border-box;margin:0!important;padding:.6rem .875rem;font-size:.95rem;text-align:left}.provider-license{display:flex;align-items:flex-start;gap:.75rem;margin:0;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--light-gray);cursor:pointer}.provider-license input[type=checkbox]{width:1.1rem;height:1.1rem;margin-top:.15rem;flex-shrink:0;accent-color:var(--accent-primary);cursor:pointer}.provider-license span{color:var(--subtext);font-size:.9rem;line-height:1.5}.provider-license a{color:var(--accent-primary)}@media screen and (max-width:520px){.provider-setting{flex-direction:column;align-items:flex-start;gap:.5rem}.provider-input{width:100%}}.toast-notification{position:fixed;bottom:2rem;right:1rem;z-index:5;background-color:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 24px #00000040;border:1px solid var(--light-gray);border-radius:.75rem;animation:.5s moveIn cubic-bezier(.4,0,.2,1);cursor:pointer;transition:all .2s ease}.toast-hidden{visibility:hidden;transition:all 0s .5s;animation:.5s moveOut cubic-bezier(.4,0,.2,1)}.toast-green{border-left:4px solid var(--accent-primary)}.toast-green .toast-content svg{color:var(--accent-primary)}.toast-green:hover{border-color:var(--light-gray);border-left-color:var(--accent-primary);transform:translate(-4px)}.toast-red{border-left:4px solid var(--accent-danger)}.toast-red .toast-content svg{color:var(--accent-danger)}.toast-red:hover{border-color:var(--light-gray);border-left-color:var(--accent-danger);transform:translate(-4px)}.toast-content{display:flex;align-items:center;padding:1rem 1.25rem;color:var(--white);font-size:14px;font-weight:500}.toast-content svg{margin-right:1rem;width:1.75rem;height:1.75rem}.toast-content h2{margin:0;font-size:1.25rem;font-weight:600}@keyframes moveIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes moveOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@media screen and (max-width:425px){.toast-notification{bottom:1rem;right:1rem;left:1rem}@keyframes moveIn{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes moveOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}}.data-helper h2{margin:0 0 .75rem;font-size:1.15rem;font-weight:500;color:var(--subtext)}.data-helper p{margin:0;font-size:1rem;color:var(--subtext)}.data-helper .speeds{display:flex;justify-content:center;gap:2rem;margin-top:1.25rem}.data-helper .speeds .speed{display:flex;flex-direction:column;align-items:center}.data-helper .speeds .speed input{box-sizing:border-box;width:100%}.data-helper .speeds .speed .speed-header{display:flex;align-items:center;margin-bottom:.75rem;white-space:nowrap}.data-helper .speeds .speed .speed-header svg{font-size:1.75rem;margin-right:.5rem;color:#10b981}.data-helper .speeds .speed .speed-header .speed-text h2{margin:0;font-size:1.1rem;font-weight:500;color:var(--subtext)}.data-helper .speeds .speed .speed-header .speed-text p{margin:0;font-size:.95rem;color:var(--subtext)}@media screen and (max-width:600px){.data-helper .speeds{flex-direction:column;gap:1.25rem;margin-top:.75rem}.data-helper .speeds .speed{width:100%;flex-direction:row;justify-content:space-between}.data-helper .speeds .speed input{width:50%}}.ookla-license h2{margin:0 0 .75rem;font-size:1.15rem;font-weight:500;color:var(--subtext)}.ookla-license p{margin:0;font-size:1rem;color:var(--subtext)}.ookla-license .documents{display:flex;flex-direction:column;margin-top:1.25rem}.ookla-license .documents .document{display:flex;align-items:center;margin:.4rem 0;color:#10b981;text-decoration:none}.ookla-license .documents .document svg{margin-right:.6rem;font-size:1.4rem}.ookla-license .documents .document p{font-size:1.05rem;font-weight:500;color:#10b981}.integrations-wrapper{display:flex;flex-direction:column;gap:1.25rem;margin-top:1rem;width:34rem}.preview-warning{display:flex;align-items:center;gap:.6rem;padding:.875rem 1.25rem;background-color:#ef44441a;border:1px solid var(--accent-danger);border-radius:.75rem;color:var(--accent-danger);font-size:1rem;font-weight:500}.preview-warning svg{flex-shrink:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:3rem 2rem;text-align:center;color:var(--subtext)}.empty-state svg{font-size:3.5rem;opacity:.6}.empty-state p{margin:0;font-size:1.1rem}.integrations-list{display:flex;flex-direction:column;gap:.875rem;max-height:20rem;overflow-y:auto}@media(max-width:600px){.integrations-wrapper{width:85vw}.integrations-list{max-height:50vh}}.toggle-switch{position:relative;display:inline-block;width:2.5rem;height:1.375rem;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--light-gray);border-radius:.75rem;transition:background-color .2s ease}.toggle-slider:before{content:"";position:absolute;height:1rem;width:1rem;left:.1875rem;top:50%;transform:translateY(-50%);background-color:var(--white);border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background-color:var(--accent-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translateY(-50%) translate(1.125rem)}.toggle-disabled{opacity:.5;pointer-events:none}.form-field{display:flex;align-items:center;justify-content:space-between;gap:1rem}.form-field label:first-child{font-size:.95rem;font-weight:500;color:var(--subtext);flex:1}.form-field-error{color:var(--accent-danger)!important}.form-field-input{width:55%;flex-shrink:0;background-color:var(--dark-gray);border:1px solid var(--light-gray);border-radius:.6rem;padding:.6rem .875rem;font-size:.95rem;color:var(--white);font-family:inherit;transition:border-color .15s ease}.form-field-input:focus{outline:none;border-color:var(--accent-primary)}.form-field-input.input-error{border-color:var(--accent-danger)}.form-field-input::placeholder{color:var(--subtext);opacity:.6}.form-field-input:disabled{opacity:.5;cursor:not-allowed}.form-field-textarea{min-height:4rem;resize:vertical}@media(max-width:600px){.form-field{flex-direction:column;align-items:flex-start;gap:.5rem}.form-field .form-field-input{width:100%}}.expandable-card{background-color:var(--darker-gray);border:1px solid var(--light-gray);border-radius:.875rem;transition:all .2s ease}.expandable-card.card-error{border-color:var(--accent-danger)}.expandable-card.card-success{border-color:var(--accent-primary)}.expandable-card-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.125rem;cursor:pointer;-webkit-user-select:none;user-select:none}.expandable-card-header:hover{background-color:#ffffff05;border-radius:.875rem}.expandable-card-info{display:flex;align-items:center;gap:.875rem}.expandable-card-icon{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background-color:var(--light-gray);border-radius:.6rem;color:var(--white)}.expandable-card-icon svg{font-size:1.2rem}.expandable-card-details h3{margin:0;font-size:1.05rem;font-weight:500;color:var(--white);max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expandable-card-status{display:flex;align-items:center;gap:.4rem;margin-top:.25rem}.status-dot{width:.5rem;height:.5rem;border-radius:50%}.status-dot.status-active{background-color:var(--accent-primary)}.status-dot.status-inactive{background-color:var(--light-gray)}.status-dot.status-error{background-color:var(--accent-danger)}.status-text{font-size:.85rem;color:var(--subtext)}.expandable-card-actions{display:flex;align-items:center;gap:.35rem}.card-action-btn{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;background:none;border:none;border-radius:.5rem;color:var(--subtext);cursor:pointer;transition:all .15s ease}.card-action-btn:hover{background-color:var(--light-gray)}.card-action-btn svg{font-size:1rem}.card-action-btn.save-btn:hover{color:var(--accent-primary)}.card-action-btn.delete-btn:hover{color:var(--accent-danger)}.card-action-btn.delete-btn.confirm{color:var(--accent-danger);background-color:#ef44441a}.card-action-btn.success-indicator{color:var(--accent-primary);cursor:default}.card-action-btn.success-indicator:hover{background:none}.expandable-card-body{padding:1.125rem;display:flex;flex-direction:column;gap:.875rem;border-top:1px solid var(--light-gray);margin-top:.5rem}@media(max-width:600px){.expandable-card-details h3{max-width:8rem}}.dropdown-select-container{position:relative;display:flex;justify-content:flex-end;outline:none}.dropdown-select-btn{display:flex;align-items:center;gap:.6rem;padding:.7rem 1.125rem;background-color:var(--darker-gray);border:1px solid var(--light-gray);border-radius:.6rem;color:var(--subtext);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease}.dropdown-select-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.dropdown-select-btn svg{font-size:.9rem}.dropdown-select-chevron{transition:transform .2s ease;margin-left:.25rem}.dropdown-select-chevron.rotated{transform:rotate(180deg)}.dropdown-select-menu{position:absolute;top:auto;bottom:calc(100% + .5rem);right:0;min-width:13rem;background-color:var(--darker-gray);border:1px solid var(--light-gray);border-radius:.6rem;box-shadow:0 8px 24px #0000004d;z-index:1000;overflow:hidden}.dropdown-select-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 1.125rem;color:var(--subtext);cursor:pointer;transition:all .15s ease}.dropdown-select-item:hover{background-color:var(--light-gray);color:var(--white)}.dropdown-select-item svg{width:1.2rem;font-size:1.1rem}.dropdown-select-item span{font-size:1rem}.language-dialog{width:22rem}.language-dialog .dialog-main{display:block}.language-content{margin:1rem .5rem;-webkit-user-select:none;user-select:none}.language-list{display:flex;flex-direction:column;gap:.5rem;max-height:22rem;overflow-y:auto;padding-right:.25rem}.language-list::-webkit-scrollbar{width:.4rem}.language-list::-webkit-scrollbar-track{background:transparent}.language-list::-webkit-scrollbar-thumb{background:var(--light-gray);border-radius:.25rem}.language-list::-webkit-scrollbar-thumb:hover{background:var(--subtext)}.language-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1.125rem;border-radius:.75rem;border:1px solid var(--light-gray);cursor:pointer;transition:all .15s ease}.language-item:hover{background-color:var(--darker-gray)}.language-item-active{background-color:var(--light-gray);border-color:var(--accent-primary)}.language-item-active .language-name{color:var(--white)}.language-item-active:hover{background-color:var(--light-gray)}.language-flag{width:2.25rem;height:auto;border-radius:.25rem;flex-shrink:0}.language-name{flex:1;font-size:1.05rem;font-weight:500;color:var(--subtext);margin:0}@media screen and (max-height:500px){.language-list{max-height:14rem}}@media screen and (max-width:425px){.language-dialog{width:90vw}.language-item{padding:.75rem 1rem}}.storage-dialog-wrapper{width:48rem;max-width:95vw}.storage-dialog-wrapper .dialog-main{display:block}.storage-dialog{display:flex;margin:1rem .5rem;gap:2rem;-webkit-user-select:none;user-select:none}.storage-options{display:flex;flex-direction:column;justify-content:space-between}.storage-top{display:flex;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none}.storage-tab{display:flex;gap:.6rem;align-items:center;padding:.6rem .875rem;color:var(--subtext);border:1px solid transparent;border-radius:.6rem;cursor:pointer;transition:all .15s ease}.storage-tab:hover{background-color:var(--darker-gray)}.storage-tab svg{width:1.2rem;height:1.2rem;flex-shrink:0}.storage-tab p{margin:0;font-size:1rem;font-weight:500}.reset-cursor{cursor:default}.reset-cursor:hover{background-color:transparent}.storage-item-active{background-color:var(--light-gray);border-color:var(--accent-primary);color:var(--white)}.storage-item-active:hover{background-color:var(--light-gray)}.storage-manager{flex:1;display:flex;flex-direction:column;gap:1.25rem}.storage-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.storage-row .storage-row-label{display:flex;align-items:center;gap:.6rem}.storage-row .storage-row-label svg{color:var(--subtext);font-size:1rem;width:1rem}.storage-row .storage-row-label h3{margin:0;font-size:1rem;font-weight:500;color:var(--subtext)}.storage-row .storage-row-value{font-size:1rem;font-weight:600;color:var(--white);margin:0}.storage-row .storage-row-actions{display:flex;gap:.5rem}.storage-row .dialog-btn{padding:.5rem 1rem}@media(max-width:781px){.storage-dialog-wrapper{width:95vw}.storage-dialog{flex-direction:column;gap:1rem}.storage-bottom{display:none}.storage-manager{padding-top:1rem;border-top:1px solid var(--light-gray)}.storage-top{flex-direction:row;justify-content:center;gap:.5rem}.storage-row{flex-direction:column;align-items:flex-start;gap:.5rem}.storage-row .storage-row-actions{width:100%}.storage-row .storage-row-actions .dialog-btn{flex:1}}.optimal-values-content{-webkit-user-select:none;user-select:none;margin:.5rem 0}.optimal-values-content .optimal-values-speeds{display:flex;justify-content:center;gap:2rem}.optimal-values-content .optimal-values-speeds .optimal-values-speed{display:flex;flex-direction:column;align-items:center}.optimal-values-content .optimal-values-speeds .optimal-values-speed input{box-sizing:border-box;width:7.5rem;text-align:center}.optimal-values-content .optimal-values-speeds .optimal-values-speed .optimal-values-speed-header{display:flex;align-items:center;margin-bottom:.75rem}.optimal-values-content .optimal-values-speeds .optimal-values-speed .optimal-values-speed-header svg{font-size:1.6rem;margin-right:.5rem;color:#10b981}.optimal-values-content .optimal-values-speeds .optimal-values-speed .optimal-values-speed-header .optimal-values-speed-text h2{margin:0;color:var(--subtext);font-size:1.1rem;font-weight:500}.optimal-values-content .optimal-values-speeds .optimal-values-speed .optimal-values-speed-header .optimal-values-speed-text p{margin:0;color:var(--subtext);font-size:.95rem}@media screen and (max-width:600px){.optimal-values-content .optimal-values-speeds{flex-direction:column;gap:1.25rem}.optimal-values-content .optimal-values-speeds .optimal-values-speed{width:100%;flex-direction:row;justify-content:space-between}.optimal-values-content .optimal-values-speeds .optimal-values-speed input{width:40%}}.frequency-dialog{width:28rem;max-width:95vw}.frequency-dialog .dialog-main{display:block}.frequency-content{margin:1rem .5rem;-webkit-user-select:none;user-select:none}.frequency-presets{display:flex;flex-direction:column;gap:.5rem}.frequency-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1.125rem;border-radius:.75rem;border:1px solid var(--light-gray);cursor:pointer;transition:all .15s ease}.frequency-item:hover{background-color:var(--darker-gray)}.frequency-item svg{font-size:1.25rem;color:var(--subtext);width:1.5rem;flex-shrink:0}.frequency-item-text{flex:1}.frequency-item-text h3{margin:0;font-size:1.05rem;font-weight:500;color:var(--subtext)}.frequency-item-text p{margin:.15rem 0 0;font-size:.85rem;color:var(--subtext);opacity:.7}.frequency-item-active{background-color:var(--light-gray);border-color:var(--accent-primary)}.frequency-item-active svg,.frequency-item-active h3{color:var(--white)}.frequency-item-active:hover{background-color:var(--light-gray)}.frequency-advanced-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:1rem;padding:.75rem 1rem;background:transparent;border:1px solid var(--light-gray);border-radius:.6rem;color:var(--subtext);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease}.frequency-advanced-toggle:hover{background-color:var(--darker-gray)}.frequency-advanced-toggle svg{font-size:.85rem;transition:transform .2s ease}.frequency-advanced-toggle.frequency-advanced-open{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent;background-color:var(--darker-gray)}.frequency-advanced-toggle.frequency-advanced-open svg{transform:rotate(180deg)}.frequency-custom{padding:1rem;background-color:var(--darker-gray);border:1px solid var(--light-gray);border-top:none;border-radius:0 0 .6rem .6rem}.frequency-custom-input{display:flex;align-items:center;gap:.75rem}.frequency-custom-input .dialog-input{flex:1;height:2.5rem;box-sizing:border-box;text-align:center;margin:0}.frequency-help{color:var(--subtext);font-size:1.1rem;padding:.25rem;transition:color .15s ease}.frequency-help:hover{color:var(--accent-primary)}.frequency-next-run{margin:.75rem 0 0;font-size:.85rem;color:var(--subtext);text-align:center}.frequency-option{display:flex;align-items:center;gap:.875rem;margin-top:1rem;padding:.875rem 1rem;border-radius:.75rem;border:1px solid var(--light-gray);cursor:pointer;transition:all .15s ease}.frequency-option:hover{background-color:var(--darker-gray)}.frequency-option-text{flex:1}.frequency-option-text h3{margin:0;font-size:.95rem;font-weight:500;color:var(--subtext)}.frequency-option-text p{margin:.15rem 0 0;font-size:.8rem;color:var(--subtext);opacity:.7}.frequency-toggle{width:42px;height:24px;background-color:var(--light-gray);border-radius:12px;position:relative;transition:background-color .2s ease;flex-shrink:0}.frequency-toggle-knob{width:20px;height:20px;background-color:var(--white);border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .2s ease}.frequency-toggle-active{background-color:var(--accent-primary)}.frequency-toggle-active .frequency-toggle-knob{transform:translate(18px)}.password-dialog{width:28rem;max-width:95vw}.password-dialog .dialog-main{display:block}.password-content{margin:1rem .5rem;display:flex;flex-direction:column;gap:1.25rem;-webkit-user-select:none;user-select:none}.password-section{display:flex;justify-content:space-between;align-items:center;gap:1rem}.password-label{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.password-label svg{font-size:1rem;width:1rem;color:var(--subtext)}.password-label h3{font-size:1rem;font-weight:500;color:var(--subtext);margin:0}.password-input-wrapper{position:relative;display:flex;align-items:center;width:14rem}.password-input-wrapper .dialog-input{width:100%;padding-right:2.5rem;height:2.5rem;box-sizing:border-box;margin:0}.password-toggle{position:absolute;right:.75rem;background:none;border:none;color:var(--subtext);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:color .15s ease}.password-toggle:hover{color:var(--white)}.access-section{display:flex;flex-direction:column;gap:.75rem;padding-top:1.25rem;border-top:1px solid var(--light-gray)}.access-label{display:flex;align-items:center;gap:.6rem;margin-bottom:.25rem}.access-label svg{font-size:1rem;width:1rem;color:var(--subtext)}.access-label h3{font-size:1rem;font-weight:500;color:var(--subtext);margin:0}.access-options{display:flex;flex-direction:column;gap:.5rem}.access-option{display:flex;align-items:center;gap:1rem;padding:.875rem 1.125rem;background:transparent;border:1px solid var(--light-gray);border-radius:.75rem;cursor:pointer;transition:all .15s ease;text-align:left}.access-option:hover{background-color:var(--darker-gray)}.access-option svg{font-size:1.25rem;color:var(--subtext);width:1.5rem;flex-shrink:0}.access-option.access-active{background-color:var(--light-gray);border-color:var(--accent-primary)}.access-option.access-active svg{color:var(--white)}.access-option.access-active .access-title{color:var(--white)}.access-option.access-active:hover{background-color:var(--light-gray)}.access-text{display:flex;flex-direction:column;flex:1}.access-title{font-size:1.05rem;font-weight:500;color:var(--subtext);margin:0}.access-desc{font-size:.85rem;color:var(--subtext);opacity:.7;margin-top:.15rem}@media screen and (max-width:520px){.password-section{flex-direction:column;align-items:flex-start;gap:.5rem}.password-input-wrapper{max-width:100%;width:100%}}.pause-dialog{width:28rem;max-width:95vw}.pause-dialog .dialog-main{display:block}.pause-content{margin:1rem .5rem;-webkit-user-select:none;user-select:none}.pause-presets{display:flex;flex-direction:column;gap:.5rem}.pause-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1.125rem;border-radius:.75rem;border:1px solid var(--light-gray);cursor:pointer;transition:all .15s ease}.pause-item:hover{background-color:var(--darker-gray)}.pause-item svg{font-size:1.25rem;color:var(--subtext);width:1.5rem;flex-shrink:0}.pause-item-text{flex:1}.pause-item-text h3{margin:0;font-size:1.05rem;font-weight:500;color:var(--subtext)}.pause-item-text p{margin:.15rem 0 0;font-size:.85rem;color:var(--subtext);opacity:.7}.pause-item-active{background-color:var(--light-gray);border-color:var(--accent-primary)}.pause-item-active svg,.pause-item-active h3{color:var(--white)}.pause-item-active:hover{background-color:var(--light-gray)}.pause-custom-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:1rem;padding:.75rem 1rem;background:transparent;border:1px solid var(--light-gray);border-radius:.6rem;color:var(--subtext);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease}.pause-custom-toggle:hover{background-color:var(--darker-gray)}.pause-custom-toggle svg{font-size:.85rem;transition:transform .2s ease}.pause-custom-toggle.pause-custom-open{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent;background-color:var(--darker-gray)}.pause-custom-toggle.pause-custom-open svg{transform:rotate(180deg)}.pause-custom{padding:1rem;background-color:var(--darker-gray);border:1px solid var(--light-gray);border-top:none;border-radius:0 0 .6rem .6rem}.pause-input{width:100%;height:2.5rem;box-sizing:border-box;text-align:center;margin:0}.pagination{display:flex;justify-content:center;background-color:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:2px solid var(--light-gray);padding:.7rem .8rem;gap:1rem;border-radius:1rem;position:relative;overflow:hidden;box-sizing:border-box;-webkit-user-select:none;user-select:none}.pagination .pagination-item{display:flex;color:var(--subtext);justify-content:center;align-items:center;cursor:pointer;padding:.5rem 1.5rem;gap:1rem;border-radius:.5rem;position:relative;z-index:1}.pagination .pagination-item:hover{color:var(--white)}.pagination .pagination-item p{margin:0;font-weight:500;font-size:16pt}.pagination .pagination-item svg{font-size:16pt}.pagination .page-active{color:var(--white)}.pagination .pagination-active-background{position:absolute;top:50%;left:var(--active-left, 0);width:var(--active-width, 0);height:calc(100% - 1rem);background-color:var(--light-gray);border-radius:.8rem;transition:left .3s ease,width .3s ease;transform:translateY(-50%);z-index:0}@media(max-width:968px){.pagination-item{gap:.5rem}.pagination-item p{display:none}}@media(max-width:768px){.pagination{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:100;box-shadow:0 0 10px 0 var(--light-gray)}}.about-dialog{width:26rem;max-width:95vw}.about-dialog .dialog-main{display:block}.about-content{margin:1rem .5rem;display:flex;flex-direction:column;gap:1.25rem;-webkit-user-select:none;user-select:none}.about-hero{display:flex;align-items:center;gap:1rem;padding-bottom:1.25rem;border-bottom:1px solid var(--light-gray)}.about-hero img{width:56px;height:56px;border-radius:.75rem}.about-hero-text{display:flex;flex-direction:column;gap:.15rem}.about-hero-text h2{margin:0;font-size:1.35rem;color:var(--white);font-weight:600}.about-version{font-size:.9rem;color:var(--accent-primary);font-weight:500}.about-description{margin:0;font-size:.95rem;color:var(--subtext);line-height:1.5}.about-links{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.about-link{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.75rem 1rem;border:1px solid var(--light-gray);border-radius:.6rem;color:var(--subtext);text-decoration:none;font-size:.9rem;font-weight:500;transition:all .15s ease}.about-link svg{font-size:1rem}.about-link:hover{background-color:var(--darker-gray);border-color:var(--accent-primary);color:var(--white)}.about-footer{display:flex;align-items:center;justify-content:center;gap:.4rem;padding-top:1.25rem;font-size:.85rem;color:var(--subtext);border-top:1px solid var(--light-gray)}.about-footer svg{color:var(--accent-danger);font-size:.8rem}.about-footer a{color:var(--accent-primary);text-decoration:none;font-weight:500}.about-footer a:hover{text-decoration:underline}.tooltip-wrapper{display:inline-flex;position:relative}.tooltip-wrapper:hover .tooltip-popup{opacity:1;visibility:visible}.tooltip-popup{position:absolute;z-index:1000;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;left:0;right:0;display:flex;justify-content:center}.tooltip-content{display:inline-block;padding:.5rem .75rem;font-size:.85rem;font-weight:500;color:var(--white);background-color:var(--dark-gray);border:1px solid var(--light-gray);border-radius:.5rem;box-shadow:0 8px 24px #00000040,0 4px 8px #00000026;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);white-space:nowrap;position:relative}.tooltip-arrow{width:10px;height:10px;background-color:var(--dark-gray);border:1px solid var(--light-gray);position:absolute;left:50%;margin-left:-5px}.tooltip-top{bottom:100%;padding-bottom:8px}.tooltip-top .tooltip-arrow{bottom:3px;transform:rotate(45deg);border-top:none;border-left:none}.tooltip-bottom{top:100%;padding-top:8px}.tooltip-bottom .tooltip-arrow{top:3px;transform:rotate(45deg);border-bottom:none;border-right:none}@media(max-width:600px){.tooltip-content{font-size:.8rem;padding:.4rem .6rem}}.loading{width:100vw;height:100vh;position:absolute;display:flex;justify-content:center;align-items:center}.error-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--white);text-align:center;margin:0}.no-reload{width:unset;height:unset;position:center;display:unset}.error-page svg{color:#ef4444}.error-page h1{padding-left:1rem;padding-right:1rem}.error-page h2{margin:0;padding-left:.5rem;padding-right:.5rem}.error-page span{color:#10b981}.dialog-area{position:fixed;inset:0;width:100%;height:100%;background-color:#000000b3;display:flex;align-items:center;z-index:999;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .2s;animation:opacity .3s}.dialog-area-hidden{opacity:0;animation:opacity .3s reverse}.dialog{padding:1.5rem;background-color:var(--dark-gray);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid var(--light-gray);border-radius:1rem;animation:fadeIn .3s;box-shadow:0 20px 40px #0000004d;min-width:320px;max-width:min(500px,90vw);box-sizing:border-box}.dialog.storage-dialog-wrapper,.dialog.provider-dialog-wrapper,.dialog.integration-dialog,.dialog.welcome-dialog{max-width:90vw}.dialog-hidden{visibility:hidden;opacity:0;animation:fadeOut .3s}.dialog-header{display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none}.dialog a{color:var(--accent-primary);cursor:pointer;transition:color .15s ease}.dialog a:hover{color:var(--accent-secondary)}.dialog-main{display:flex;justify-content:center;align-items:center;flex-direction:column;width:100%;box-sizing:border-box}.dialog-buttons{display:flex;margin-top:1.25rem;justify-content:flex-end;gap:.75rem}.dialog-text{font-size:1.25rem;font-weight:700;color:var(--white);margin:0}.dialog-description{font-size:1.05rem;font-weight:600;margin:14px 2px 2px;color:var(--subtext);line-height:1.6;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.dialog-description a{color:var(--accent-primary);text-decoration:underline}.dialog-value{color:var(--accent-primary);font-weight:600}.dialog-icon{cursor:pointer;color:var(--subtext);transition:color .15s ease;font-size:1.1rem}.dialog-icon:hover{color:var(--accent-danger)}.dialog-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.7rem 1.25rem;background-color:var(--darker-gray);border:1px solid var(--light-gray);border-radius:.6rem;color:var(--white);font-size:1rem;font-weight:500;cursor:pointer;transition:all .15s ease}.dialog-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.dialog-btn svg{font-size:1rem}.dialog-btn-danger:hover,.dialog-secondary:hover{border-color:var(--accent-danger);color:var(--accent-danger)}.dialog-input{font-size:1rem;padding:.7rem 1rem;font-weight:500;margin-top:15px;margin-bottom:15px;width:100%;background-color:var(--darker-gray);color:var(--white);border:1px solid var(--light-gray);border-radius:.6rem;text-align:center;box-sizing:border-box;outline:none;transition:all .15s ease}.dialog-input::placeholder{color:var(--subtext)}.dialog-input:focus{border-color:var(--accent-primary)}.input-error{border-color:var(--accent-danger)}.input-error:focus{border-color:var(--accent-danger)}.dialog-loading{min-width:200px;min-height:100px;display:flex;align-items:center;justify-content:center}@media(max-width:600px){.dialog{min-width:280px;max-width:95vw;padding:1.25rem}.dialog-text{font-size:1.15rem}.dialog-description{font-size:1rem}.dialog-btn{font-size:.95rem;padding:.6rem 1rem}}.route-error-page{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 5rem);padding:2rem;text-align:center;color:var(--white)}.route-error-content{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:500px}.route-error-icon{width:100px;height:100px;border-radius:50%;background:var(--dark-gray);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.route-error-icon svg{color:#ef4444}.route-error-title{font-size:3rem;font-weight:700;margin:0;color:var(--white);line-height:1}.route-error-subtitle{font-size:1.5rem;font-weight:600;margin:0;color:var(--white)}.route-error-description{font-size:1rem;color:var(--subtext);margin:.5rem 0 1rem;line-height:1.5}.route-error-details{background:var(--darker-gray);border:1px solid var(--light-gray);border-radius:.5rem;padding:1rem;font-size:.875rem;color:#ef4444;max-width:100%;overflow-x:auto;margin:.5rem 0 1rem;white-space:pre-wrap;word-break:break-word}.route-error-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.node-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--white);text-align:center;margin:0;gap:.7rem}.node-page hr{margin:0}.node-area{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}.node-add{width:53rem;display:flex;justify-content:center;align-items:center;border:2px solid var(--light-gray);background-color:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:15px;cursor:pointer;-webkit-user-select:none;user-select:none;gap:.5rem}.node-add h1{font-size:22pt;font-weight:700;color:var(--subtext);margin-right:1rem}.node-add svg{font-size:22pt;margin-left:1rem}.node-add:hover{border:2px solid #10b981}.node-add:hover h1{color:var(--white)}.node-disabled{width:53rem;border:2px dashed var(--light-gray);background-color:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:15px;cursor:not-allowed;-webkit-user-select:none;user-select:none}.node-disabled:hover{border:2px dashed var(--light-gray)}.node-disabled:hover h1{color:var(--subtext)}@media screen and (max-width:862px){.node-add{width:calc(20vw + 11rem);border-radius:15px;cursor:pointer}.node-add h1{font-size:22pt}}.node-header{display:flex;align-items:center;gap:1rem}.node-header img{width:5.3rem;height:5.3rem;border-radius:50%}.node-header h1{font-size:38pt;font-weight:700;margin:0}.node-item{border:2px solid var(--light-gray);background-color:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:15px;display:flex;width:50rem;cursor:pointer;padding:1rem 1.5rem;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}.hover-green:hover{border:2px solid #10b981}.hover-orange:hover{border:2px solid #f59e0b}.hover-red:hover{border:2px solid #ef4444}.node-info-area{display:flex;align-items:center;gap:1rem}.node-info-area svg{font-size:30pt}.node-info-area h1{margin:0;font-size:16pt}.node-info-area p{margin:0;font-size:11pt;color:var(--subtext)}.node-info{display:flex;flex-direction:column;align-items:flex-start}.node-info *{max-width:11rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.speed-area{display:flex;gap:1rem}.icon-text{display:flex;gap:.5rem;align-items:center}.icon-text h2{margin:0;color:var(--subtext)}.speed-item{display:flex;gap:.5rem}.speed-item svg{font-size:24pt}.speed-item h1{margin:0;font-size:20pt;color:var(--subtext)}.speed-icon{font-size:28pt}@media screen and (max-width:862px){.node-item{width:calc(20vw + 8rem);flex-direction:column;gap:1rem}.speed-area{flex-direction:column;gap:.5rem}.icon-text h2{font-size:14pt}}.context-menu{position:fixed;z-index:1000;background-color:var(--dark-gray);border:1px solid var(--light-gray);border-radius:10px;padding:6px;min-width:160px;box-shadow:0 8px 16px #0000004d;outline:none;animation:contextMenuFadeIn .15s ease-in-out}.context-menu:focus{outline:none}@keyframes contextMenuFadeIn{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.context-menu-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer;color:var(--subtext);transition:background-color .1s ease}.context-menu-item svg{width:14px;height:14px;flex-shrink:0}.context-menu-item span{font-size:11pt}.context-menu-item:hover,.context-menu-item.context-menu-focused{background-color:var(--darker-gray);color:var(--white)}.context-menu-item:hover svg,.context-menu-item.context-menu-focused svg{color:var(--white)}.context-menu-danger{color:#ef4444}.context-menu-danger svg{color:#ef4444}.context-menu-danger:hover,.context-menu-danger.context-menu-focused{background-color:#ef44441a;color:#ef4444}.context-menu-danger:hover svg,.context-menu-danger.context-menu-focused svg{color:#ef4444}.context-menu-divider{height:1px;background-color:var(--light-gray);margin:6px 0}.create-node-dialog .dialog-main{display:block}.server-dialog{margin:1rem .5rem .5rem;display:flex;flex-direction:column;gap:1rem}.server-group{display:flex;flex-direction:column;gap:.6rem}.server-label{display:flex;align-items:center;gap:.6rem}.server-label svg{color:#10b981;font-size:1.15rem}.server-label h3{margin:0;font-size:1.05rem;font-weight:500;color:#10b981}.server-input{margin:0!important;text-align:left}.server-error .server-input{border-color:#ef4444}.date-range-picker{position:relative;display:inline-block}.date-range-trigger{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;background-color:var(--dark-gray);border:1px solid var(--light-gray);border-radius:.5rem;cursor:pointer;transition:all .2s ease-in-out}.date-range-trigger:hover{border-color:var(--accent-primary)}.calendar-icon{color:var(--subtext);font-size:.875rem}.date-range-text{color:var(--white);font-size:.8rem;font-weight:600;white-space:nowrap}.date-range-popover{position:absolute;top:calc(100% + .375rem);left:0;z-index:1000;background-color:var(--dark-gray);border:1px solid var(--light-gray);border-radius:.75rem;box-shadow:0 8px 24px #00000040;overflow:hidden;padding:1rem;animation:popoverFadeIn .2s ease-out}@keyframes popoverFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.nav-btn{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;background:transparent;border:1px solid var(--light-gray);border-radius:.375rem;color:var(--subtext);cursor:pointer;transition:all .15s ease;font-size:.75rem}.nav-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--white);background-color:var(--darker-gray)}.nav-btn:disabled{opacity:.3;cursor:not-allowed}.current-month{color:var(--white);font-size:.8rem;font-weight:600}.calendar-grid{min-width:240px}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:.375rem}.weekday{text-align:center;color:var(--subtext);font-size:.625rem;font-weight:600;text-transform:uppercase;padding:.375rem 0}.days{display:grid;grid-template-columns:repeat(7,1fr)}.day-btn{display:flex;align-items:center;justify-content:center;width:100%;height:30px;background:transparent;border:none;color:var(--white);font-size:.75rem;font-weight:600;cursor:pointer;transition:background-color .1s ease,color .1s ease;border-radius:0}.day-btn:hover:not(.disabled):not(.selected):not(.in-range){background-color:var(--darker-gray);border-radius:.25rem}.day-btn.other-month{color:var(--subtext);opacity:.4}.day-btn.in-range{background-color:#10b98133}.day-btn.range-start{background-color:var(--accent-primary);color:#fff;font-weight:600;border-radius:.25rem 0 0 .25rem}.day-btn.range-start.range-end{border-radius:.25rem}.day-btn.range-end{background-color:var(--accent-primary);color:#fff;font-weight:600;border-radius:0 .25rem .25rem 0}.day-btn.today:not(.selected){position:relative;font-weight:600}.day-btn.today:not(.selected):after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:3px;height:3px;background-color:var(--accent-primary);border-radius:50%}.day-btn.disabled{opacity:.25;cursor:not-allowed}@media screen and (max-width:600px){.date-range-popover{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);overflow-y:auto}.calendar-grid{min-width:unset}.day-btn{height:28px;font-size:.7rem}}.chart-modal-backdrop{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem;animation:modalFadeIn .25s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chart-modal-content{position:relative;width:fit-content;min-width:400px;max-width:min(1400px,100vw - 3rem);max-height:90vh;background-color:var(--dark-gray);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid var(--light-gray);border-radius:1rem;overflow:hidden;animation:scaleIn .25s ease-out;box-shadow:0 20px 40px #0000004d}.chart-modal-content.modal-chart{width:min(100%,100vw - 3rem)}.chart-modal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--subtext);width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s ease;z-index:10;font-size:1.1rem;padding:0}.chart-modal-close:hover{color:var(--accent-danger)}.chart-modal-body{padding:1.25rem}.chart-modal-body .chart-container,.chart-modal-body .stats-container{width:100%;border:none;transform:none!important;cursor:default;box-shadow:none}.chart-modal-body .chart-container:hover,.chart-modal-body .stats-container:hover{border:none;transform:none!important;box-shadow:none}.chart-modal-body.modal-body-chart .chart-container{min-height:min(70vh,500px);max-height:75vh}.chart-modal-body.modal-body-chart .chart-body{min-height:min(60vh,400px);max-height:65vh}.chart-modal-body .stats-header{padding:.5rem 0 .75rem .25rem}.chart-modal-body .stats-content{height:auto;min-height:auto;padding:0 .25rem .5rem}.chart-modal-body .consistency-container{gap:2rem}.chart-modal-body .consistency-container .consistency-item svg{width:3rem;height:3rem}.chart-modal-body .consistency-container .consistency-item .consistency-info h2,.chart-modal-body .consistency-container .consistency-item .consistency-info p{font-size:1.25rem}.chart-modal-body .consistency-container .consistency-item .consistency-info .consistency-detail{font-size:.95rem}.chart-modal-body .overview-items{gap:1.5rem}.chart-modal-body .overview-items .overview-item .info-area svg{width:3rem;height:3rem}.chart-modal-body .overview-items .overview-item .info-area .text-area h2{font-size:1.25rem}.chart-modal-body .overview-items .overview-item .info-area .text-area p{font-size:.9rem}.chart-modal-body .overview-items .overview-item h2{font-size:1.75rem}.chart-modal-body .info-container{gap:2rem}.chart-modal-body .info-container .test-container svg{width:3rem;height:3rem}.chart-modal-body .info-container .test-container .test-info h2{font-size:1.25rem}.chart-modal-body .info-container .test-container .test-info p{font-size:1.1rem}.chart-modal-body .value-container{gap:2rem}.chart-modal-body .value-container .value-item svg{width:3rem;height:3rem}.chart-modal-body .value-container .value-item .value-info h2{font-size:1.25rem}.chart-modal-body .value-container .value-item .value-info p{font-size:1.1rem}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media screen and (max-width:768px){.chart-modal-backdrop{padding:.75rem}.chart-modal-content{min-width:auto;max-width:calc(100vw - 1.5rem);max-height:85vh}.chart-modal-content.modal-chart{width:calc(100vw - 1.5rem)}.chart-modal-body{padding:.75rem}.chart-modal-body.modal-body-chart .chart-container{min-height:min(50vh,300px);max-height:60vh}.chart-modal-body.modal-body-chart .chart-body{min-height:min(40vh,250px);max-height:50vh}}@media screen and (max-width:500px){.chart-modal-content{border-radius:.75rem}.chart-modal-body.modal-body-chart .chart-container{min-height:min(45vh,280px);max-height:55vh}.chart-modal-body.modal-body-chart .chart-body{min-height:min(35vh,220px);max-height:45vh}}.chart-container{display:flex;flex-direction:column;min-width:16rem;max-width:100%;border:1px solid var(--light-gray);background-color:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:1rem;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;animation:.25s fadeIn ease-out;flex:1 1 30%;box-shadow:0 1px 3px #0000001a;contain:layout style;overflow:hidden}.chart-container:hover{border-color:var(--accent-primary);transform:translateY(-4px);box-shadow:0 12px 24px #00000026}.chart-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem .75rem;flex-shrink:0}.chart-title{color:var(--white);font-size:15pt;font-weight:600;margin:0;letter-spacing:-.01em}.chart-body{flex:1 1 auto;min-height:14rem;max-height:20rem;padding:0 1.25rem 1.25rem;position:relative;overflow:hidden}.chart-body canvas{max-width:100%!important;max-height:100%!important}@media screen and (max-width:900px){.chart-container{min-width:100%;max-width:100%;flex:1 1 100%}.chart-body{min-height:12rem;max-height:16rem}}@media screen and (max-width:500px){.chart-container{padding:.5rem;border-radius:.75rem}.chart-body{min-height:10rem;max-height:14rem}}.stats-container{display:flex;flex-direction:column;min-width:16rem;max-width:100%;border:1px solid var(--light-gray);background-color:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:1rem;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;animation:.25s fadeIn ease-out;flex:1 1 15%;box-shadow:0 1px 3px #0000001a;position:relative;contain:layout style;overflow:hidden}.stats-container:hover{border-color:var(--accent-primary);transform:translateY(-4px);box-shadow:0 12px 24px #00000026}.container-running,.container-running:hover{border-color:var(--light-gray)}.stats-header{color:var(--white);font-size:15pt;font-weight:600;letter-spacing:-.01em;border-radius:1rem 1rem 0 0;padding:1rem .75rem .75rem 1.25rem;flex-shrink:0}.stats-content{display:flex;padding-bottom:1.25rem;padding-left:1.5rem;height:14rem;max-height:16rem;padding-right:1.5rem;overflow:hidden}.container-center{justify-content:center;align-items:center}.container-small{flex:1 1 5%}.container-normal{flex:1 1 30%}.container-large{flex:1 1 35%}@media screen and (max-width:900px){.stats-container{min-width:100%;flex:1 1 100%}.stats-content{height:auto;min-height:10rem;max-height:none}}.border-animation-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:10;overflow:visible}.info-container{display:flex;flex-direction:column;gap:1.75rem;justify-content:center;width:100%}.test-container{display:flex;justify-content:space-between;align-items:center}.test-container svg{width:2.5rem;height:2.5rem}.test-container .test-info h2{color:var(--white);margin:0;font-size:1rem;font-weight:600}.test-container .test-info p{margin:0;font-weight:600;font-size:1.1rem;display:flex;align-items:center}.test-container .test-info p .jitter-value{font-size:.8rem;font-weight:500;color:var(--subtext);padding-left:.35rem;margin-left:.35rem;border-left:2px solid var(--light-gray);opacity:.7;display:inline-flex;align-items:center;gap:.2rem}.test-container .test-info p .jitter-value .jitter-icon{width:.7rem;height:.7rem}.overview-items{display:flex;justify-content:center;flex-direction:column;width:100%;overflow-y:clip}.overview-item{display:flex;justify-content:space-between}.overview-item .info-area{display:flex;justify-content:center;align-content:center;align-items:center;gap:1rem}.overview-item .info-area svg{width:2.25rem;height:2.25rem;color:var(--subtext)}.overview-item .info-area .text-area h2{margin:0;color:var(--white);font-size:1rem;font-weight:600}.overview-item .info-area .text-area p{margin:0;font-weight:500;color:var(--subtext);font-size:.85rem}.overview-item h2{color:var(--accent-primary);font-weight:700}@media screen and (max-width:1500px){.overview-item{flex-wrap:wrap;flex-direction:row}}@media screen and (max-width:1400px){.info-area svg{display:none}.overview-item .info-area h2{display:inline-block;width:15rem;white-space:nowrap;overflow:hidden!important;text-overflow:ellipsis}.overview-item .info-area .text-area p{display:none}}@media screen and (max-width:1000px){.overview-item .info-area h2{width:10rem}}.value-container{display:flex;flex-direction:column;gap:1.75rem;justify-content:center;width:100%}.value-item{display:flex;justify-content:space-between;align-items:center}.value-item svg{width:2.25rem;height:2.25rem;color:var(--accent-primary)}.value-item .value-info h2{font-size:15pt;color:var(--white);margin:0;font-weight:600}.value-item .value-info p{color:var(--accent-primary);margin:0;font-weight:600;font-size:1.1rem}.consistency-container{display:flex;flex-direction:column;gap:1.75rem;justify-content:center;width:100%}.consistency-item{display:flex;justify-content:space-between;align-items:center}.consistency-item svg{width:2.25rem;height:2.25rem}.consistency-item .consistency-info h2{color:var(--white);margin:0;font-size:1rem;font-weight:600}.consistency-item .consistency-info p{margin:0;font-weight:600;font-size:1.1rem}.consistency-item .consistency-info .consistency-detail{color:var(--subtext);font-size:.8rem;font-weight:500;display:block;margin-top:.125rem}.export-button-container{position:relative;display:inline-block}.export-button{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;background-color:var(--dark-gray);border:1px solid var(--light-gray);border-radius:.5rem;cursor:pointer;transition:all .2s ease-in-out;color:var(--white);font-family:inherit;font-size:.8rem;font-weight:600}.export-button:hover:not(:disabled){border-color:var(--accent-primary)}.export-button:disabled{opacity:.6;cursor:not-allowed}.export-icon{color:var(--subtext);font-size:.875rem}.export-text{white-space:nowrap}.chevron-icon{color:var(--subtext);font-size:.625rem;transition:transform .2s ease}.chevron-icon.open{transform:rotate(180deg)}.export-dropdown{position:absolute;top:calc(100% + .375rem);right:0;left:0;z-index:1000;background-color:var(--dark-gray);border:1px solid var(--light-gray);border-radius:.6rem;box-shadow:0 8px 24px #0000004d;overflow:hidden;padding:6px;animation:dropdownFadeIn .15s ease-out}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.export-option{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;color:var(--subtext);cursor:pointer;transition:all .15s ease}.export-option:hover{background-color:var(--darker-gray);color:var(--white)}.export-option:hover svg{color:var(--white)}.export-option svg{width:14px;height:14px;flex-shrink:0}.export-option span{font-size:.875rem;font-weight:500}@media screen and (max-width:600px){.export-text{display:none}.export-button{padding:.5rem .625rem}.chevron-icon{display:none}.export-dropdown{position:fixed;top:auto;bottom:1rem;left:50%;right:auto;transform:translate(-50%);max-width:calc(100vw - 2rem)}}.statistic-area{margin-left:20rem;margin-right:20rem;padding-top:1.5rem;margin-bottom:2rem;display:flex;gap:2rem;justify-content:space-between;flex-wrap:wrap}.statistic-stale{opacity:.7;transition:opacity .2s ease}.statistic-loading .skeleton-picker{width:280px;height:48px;background:linear-gradient(90deg,#161d27 25%,#1f2937,#161d27 75%);background-size:200% 100%;border-radius:.75rem;opacity:0;transform:translateY(10px)}.statistic-loading .skeleton-picker.skeleton-visible{animation:skeleton-shimmer 1.5s infinite,skeleton-fade-in .3s ease forwards}.statistic-loading .skeleton-chart{flex:1 1 30%;min-width:16rem;height:18rem;background:linear-gradient(90deg,#161d27 25%,#1f2937,#161d27 75%);background-size:200% 100%;border-radius:1rem;border:1px solid var(--light-gray);opacity:0;transform:translateY(10px)}.statistic-loading .skeleton-chart.skeleton-visible{animation:skeleton-shimmer 1.5s infinite,skeleton-fade-in .3s ease forwards}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.statistics-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}@media screen and (max-width:1472px){.statistic-area{margin-left:10rem;margin-right:10rem}}@media screen and (max-width:425px){.statistic-area{margin-left:3rem;margin-right:3rem}}@media screen and (max-width:375px){.statistic-area{margin-left:1rem;margin-right:1rem}}.analyse-area{margin-top:2rem;display:flex;padding:2.5rem 2rem;border:1px solid var(--light-gray);background-color:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:1rem;width:100%;transition:all .25s cubic-bezier(.4,0,.2,1);align-items:center;justify-content:center;margin-bottom:2rem;box-sizing:border-box;-webkit-user-select:none;user-select:none;position:relative;box-shadow:0 1px 3px #0000001a}.pulse{border-color:var(--accent-primary);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #10b98199}70%{box-shadow:0 0 0 12px #10b98100}to{box-shadow:0 0 #10b98100}}.test-running{border:1px solid var(--light-gray);animation:none;position:relative}.loading-value{display:inline-block;animation:value-pulse 1.5s ease-in-out infinite}@keyframes value-pulse{0%,to{opacity:.3}50%{opacity:.6}}.inner-container{margin-left:2rem;margin-right:2rem;transition:margin .5s;animation:fadeIn .5s ease-out}.container-header{display:flex;align-items:center}.tests-paused{border-color:var(--accent-warning)}.container-text{margin:0 0 0 25px;color:var(--white);font-weight:500;font-size:24pt;white-space:nowrap}.container-subtext{color:var(--subtext);font-size:15pt;margin-left:10px;font-weight:400}.container-main{text-align:center;color:var(--subtext)}.container-main h2{font-size:28pt;font-weight:600;margin:1rem;display:flex;align-items:center;justify-content:center}.jitter-suffix{font-size:14pt;font-weight:400;color:var(--subtext);cursor:pointer;transition:opacity .2s ease;padding-left:.4rem;margin-left:.4rem;border-left:2px solid var(--light-gray);opacity:.7;display:flex;align-items:center;gap:.25rem}.jitter-suffix:hover{opacity:1}@media(max-width:1351px){.inner-container{margin-left:1rem;margin-right:1rem}}@media(max-width:1200px){.analyse-area{flex-wrap:wrap}.mobile-break{width:100%}.analyse-area{justify-content:space-evenly}}@media(max-width:730px){.analyse-area{flex-direction:column}}@media(max-width:475px){.analyse-area{padding-left:1rem;padding-bottom:1rem;padding-top:1rem}.inner-container{margin:0}}.speedtest{margin-bottom:2rem;display:flex;padding:1.5rem 2rem;border:1px solid var(--light-gray);background-color:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:1rem;justify-content:space-between;width:100%;flex-wrap:wrap;transition:all .25s cubic-bezier(.4,0,.2,1);animation:fadeIn .5s ease-out;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;box-shadow:0 1px 3px #0000001a;position:relative;overflow:hidden}.speedtest:hover{border-color:var(--accent-primary);transform:translateY(-4px);box-shadow:0 12px 24px #00000026,0 0 0 1px #10b9811a}.speedtest-hidden{visibility:hidden;opacity:0;animation:fadeOut .3s}.speedtest-row,.date{display:flex;align-items:center}.date-text{margin:0 0 0 1rem;font-size:24pt;font-weight:500;color:var(--subtext)}.speedtest-text{margin:0;font-size:28pt;font-weight:500;color:var(--subtext);display:flex;align-items:center}.jitter-suffix{font-size:14pt;font-weight:400;color:var(--subtext);padding-left:.4rem;margin-left:.4rem;border-left:2px solid var(--light-gray);opacity:.7;display:flex;align-items:center;gap:.25rem}.jitter-suffix .jitter-icon{width:.9rem;height:.9rem}@media(max-width:605px){.speedtest{flex-direction:column}.date-text,.speedtest-text{font-size:32pt}.jitter-suffix{font-size:16pt}}:root{--background: #0f1419;--light-gray: #2a3441;--dark-gray: #1a2029;--darker-gray: #151b23;--white: #e7edf4;--subtext: #8b99ab;--blue: #3b82f6;--accent-primary: #10b981;--accent-secondary: #06b6d4;--accent-tertiary: #8b5cf6;--accent-warning: #f59e0b;--accent-danger: #ef4444;--glass-bg: rgba(26, 32, 41, .6);--chart-download: #06b6d4;--chart-upload: #8b5cf6;--chart-ping: #f59e0b;--chart-average: #ec4899;--chart-grid: rgba(42, 52, 65, .6);--chart-tooltip-bg: #151b23;--chart-tooltip-border: #2a3441}[data-theme=light]{--background: #f8fafc;--light-gray: #e2e8f0;--dark-gray: #ffffff;--darker-gray: #f1f5f9;--white: #1e293b;--subtext: #64748b;--glass-bg: rgba(255, 255, 255, .85);--chart-grid: rgba(226, 232, 240, .8);--chart-tooltip-bg: #ffffff;--chart-tooltip-border: #e2e8f0}.floating-date-indicator{position:fixed;-webkit-user-select:none;user-select:none;top:30px;display:flex;transform:translate(-50%);left:50%;z-index:50;background:var(--dark-gray);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:var(--light-gray) 2px solid;border-radius:12px;padding:12px 24px;text-align:center;font-weight:600;color:var(--white);box-shadow:0 0 15px rgba(var(--light-gray),.5);animation:slideInDown .3s ease-out}.floating-date-indicator span{font-size:22px;letter-spacing:.5px}@keyframes slideInDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.loading-more,.end-of-list{text-align:center;padding:20px;color:var(--subtext);font-style:italic}.error-text{margin:0;font-size:26pt;font-weight:700;text-align:center;color:var(--subtext)}@media(max-width:605px){.error-text{width:28rem}.floating-date-indicator{top:15px;padding:10px 20px}.floating-date-indicator span{font-size:13px}.back-to-top-button{bottom:20px;right:20px;width:48px;height:48px}.back-to-top-button svg{width:20px;height:20px}}@media(max-width:475px){.error-text{width:20rem}}.back-to-top-button{position:fixed;bottom:30px;right:30px;z-index:50;width:56px;height:56px;background:var(--dark-gray);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:var(--light-gray) 2px solid;border-radius:50%;color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 0 15px rgba(var(--light-gray),.5);transition:all .3s ease;animation:slideInUp .3s ease-out}.back-to-top-button:hover{transform:translateY(-3px);box-shadow:0 4px 20px rgba(var(--light-gray),.7);background:var(--light-gray)}.back-to-top-button:active{transform:translateY(-1px)}.back-to-top-button svg{width:24px;height:24px}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
