@font-face{font-family:Outfit;font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/outfit-300.woff2') format('woff2')}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/outfit-400.woff2') format('woff2')}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/outfit-600.woff2') format('woff2')}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/outfit-800.woff2') format('woff2')}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/plus-jakarta-sans-400.woff2') format('woff2')}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/plus-jakarta-sans-500.woff2') format('woff2')}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/plus-jakarta-sans-600.woff2') format('woff2')}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/plus-jakarta-sans-700.woff2') format('woff2')}.dnsspeedtester-app{--bg-dark:#070913;--card-bg:rgba(13, 17, 30, 0.75);--modal-bg:#0d111e;--card-border:rgba(61, 166, 255, 0.12);--primary:#3DA6FF;--primary-glow:rgba(61, 166, 255, 0.35);--accent:#00e5ff;--accent-glow:rgba(0, 229, 255, 0.35);--success:#00e676;--warning:#ffb300;--text-main:#f0f4f8;--text-muted:#8fa0dd;--font-display:'Outfit',sans-serif;--font-body:'Plus Jakarta Sans',sans-serif;--bg-gradient-1:rgba(61, 166, 255, 0.12);--bg-gradient-2:rgba(0, 229, 255, 0.08);--row-bg:rgba(255, 255, 255, 0.02);--row-bg-hover:rgba(255, 255, 255, 0.04);--select-bg:#12141d}.dnsspeedtester-app[data-theme=light],[data-theme=light] .dnsspeedtester-app{--bg-dark:#f0f4f8;--card-bg:rgba(255, 255, 255, 0.85);--modal-bg:#ffffff;--card-border:rgba(61, 166, 255, 0.2);--primary:#0066cc;--primary-glow:rgba(0, 102, 204, 0.25);--accent:#007a9b;--accent-glow:rgba(0, 122, 155, 0.25);--success:#00c853;--warning:#ffab00;--text-main:#0f172a;--text-muted:#475569;--bg-gradient-1:rgba(0, 102, 204, 0.06);--bg-gradient-2:rgba(0, 122, 155, 0.04);--row-bg:rgba(0, 0, 0, 0.02);--row-bg-hover:rgba(0, 0, 0, 0.04);--select-bg:#ffffff}.dnsspeedtester-app,.dnsspeedtester-app *{box-sizing:border-box;margin:0;padding:0}body,html{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background-color:#070913}#dnsspeedtester-root{background-color:var(--bg-dark);background-image:radial-gradient(circle at 10% 20%,var(--bg-gradient-1) 0,transparent 40%),radial-gradient(circle at 90% 80%,var(--bg-gradient-2) 0,transparent 40%);color:var(--text-main);font-family:var(--font-body);width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:1.5rem;transition:background-color .3s ease,color .3s ease;position:relative;container-type:inline-size;overflow:hidden}.control-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 3rem);max-width:580px;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:1rem;backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);box-shadow:0 20px 40px rgba(0,0,0,.35);transition:top .5s cubic-bezier(.4, 0, .2, 1),transform .5s cubic-bezier(.4, 0, .2, 1),opacity .5s cubic-bezier(.4, 0, .2, 1),box-shadow .3s ease}.control-panel.hidden{opacity:0;pointer-events:none;transform:translate(-50%,-30%)}.control-panel.at-bottom{top:calc(100% - 70px);transform:translate(-50%,-50%)}.control-panel.hidden.at-bottom{transform:translate(-50%,calc(-50% + 40px));opacity:0}.control-panel.minimized{top:auto!important;bottom:24px!important;right:24px!important;left:auto!important;transform:none!important;width:56px!important;height:56px!important;border-radius:50%!important;padding:0!important;overflow:hidden!important;opacity:.8!important;cursor:pointer!important;box-shadow:0 8px 24px rgba(0,0,0,.35)!important;border:1px solid var(--primary)!important;display:flex!important;align-items:center!important;justify-content:center!important;pointer-events:auto!important;transition:none!important}.control-panel.minimized:hover{transform:scale(1.08)!important;opacity:1!important;box-shadow:0 12px 30px rgba(61,166,255,.4)!important;filter:none!important;transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease!important}.control-panel.minimized #run-btn,.control-panel.minimized #theme-toggle{display:none!important}.control-panel.minimized #settings-toggle{width:100%!important;height:100%!important;border:none!important;background:0 0!important;box-shadow:none!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;pointer-events:none!important}.control-panel.minimized #settings-toggle svg{width:24px!important;height:24px!important;transition:transform .3s ease!important}.control-panel.minimized:hover #settings-toggle svg{transform:rotate(45deg)!important}.control-panel.faded-bottom{top:auto!important;bottom:24px!important;left:50%!important;transform:translateX(-50%)!important;width:calc(100% - 3rem)!important;max-width:580px!important;height:auto!important;border-radius:16px!important;padding:1rem!important;overflow:visible!important;display:flex!important;opacity:.4!important;filter:grayscale(30%)!important;pointer-events:auto!important;transition:none!important}.control-panel.faded-bottom *,.control-panel.minimized *{transition:none!important}.control-panel.faded-bottom:hover *,.control-panel.minimized:hover *{transition:opacity .2s ease,filter .2s ease,transform .2s ease!important}.control-panel.faded-bottom:hover{opacity:1!important;filter:none!important;box-shadow:0 20px 40px rgba(0,0,0,.35)!important;transition:opacity .2s ease,filter .2s ease,box-shadow .2s ease!important}.console-btn{background:var(--row-bg);border:1px solid var(--card-border);border-radius:12px;height:54px;width:54px;display:flex;justify-content:center;align-items:center;cursor:pointer;color:var(--text-main);transition:all .3s cubic-bezier(.4, 0, .2, 1);flex-shrink:0}.console-btn:hover{transform:scale(1.08);border-color:var(--primary);background:rgba(61,166,255,.08);color:var(--primary);box-shadow:0 4px 12px rgba(61,166,255,.15)}.btn-test{flex-grow:1;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:none;border-radius:99px;height:54px;padding:0 2.2rem;font-family:var(--font-display);font-weight:700;font-size:1.15rem;cursor:pointer;box-shadow:0 4px 20px var(--primary-glow);transition:transform .2s ease,box-shadow .2s ease,opacity .2s}.btn-test:hover:not(:disabled){transform:translateY(-1px) scale(1.02);box-shadow:0 6px 24px var(--primary-glow)}.btn-test:active:not(:disabled){transform:translateY(1px)}.btn-test:disabled{opacity:.6;cursor:not-allowed}.settings-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:0 0;z-index:200;display:flex;justify-content:center;align-items:center;opacity:1;pointer-events:auto;transition:opacity .4s ease,transform .4s cubic-bezier(.4, 0, .2, 1)}.settings-overlay.hidden{opacity:0;pointer-events:none;transform:scale(.95)}.settings-container{width:95%;max-width:620px;max-height:90vh;overflow-y:auto;padding:2rem;background:var(--modal-bg);border:1px solid var(--card-border);border-radius:28px;box-shadow:0 30px 60px rgba(0,0,0,.6);display:flex;flex-direction:column;gap:1.25rem;text-align:left;scrollbar-width:none;position:relative}.btn-settings-close{position:absolute;top:1.5rem;right:1.5rem;background:rgba(255,255,255,.05);border:1px solid var(--card-border);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;transition:all .2s;z-index:10}[data-theme=light] .btn-settings-close{background:rgba(0,0,0,.05)}.btn-settings-close:hover{background:rgba(239,68,68,.1);color:#ef4444;border-color:rgba(239,68,68,.3)}.settings-container::-webkit-scrollbar{display:none}.settings-container::-webkit-scrollbar-thumb{background-color:transparent}.settings-header{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.25rem}.settings-container h2{font-family:var(--font-display);font-weight:800;font-size:1.8rem;color:var(--text-main);margin:0}.settings-subtitle{font-size:.9rem;color:var(--text-muted)}.settings-tabs{display:flex;gap:.5rem;background:var(--row-bg);border:1px solid var(--card-border);padding:.25rem;border-radius:12px;margin-bottom:.5rem}.settings-tab-btn{flex:1;background:0 0;border:none;color:var(--text-muted);padding:.6rem 1rem;border-radius:10px;font-family:var(--font-display);font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;text-align:center}.settings-tab-btn:not(.active):hover{color:var(--text-main);background:rgba(255,255,255,.02)}[data-theme=light] .settings-tab-btn:not(.active):hover{background:rgba(0,0,0,.02)}.settings-tab-btn.active{color:#fff;background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 4px 12px var(--primary-glow)}.settings-tab-content{display:none;flex-direction:column;gap:1.25rem;animation:fadeInTab .25s ease-out}.settings-tab-content.active{display:flex}@keyframes fadeInTab{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.settings-left-col,.settings-right-col{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.settings-section{display:flex;flex-direction:column;gap:1.25rem}.setting-item{display:flex;flex-direction:column;gap:.35rem}.setting-item label{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-main)}.setting-desc{font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.setting-input{background:var(--select-bg);color:var(--text-main);border:1px solid var(--card-border);border-radius:10px;padding:.6rem .85rem;font-family:var(--font-body);font-size:.95rem;outline:0;transition:border-color .2s}.setting-input:focus{border-color:var(--accent)}.dns-manager-form{background:var(--row-bg);border:1px solid var(--card-border);border-radius:16px;padding:1.25rem;display:flex;flex-direction:column;gap:.85rem}.dns-manager-form h3{font-family:var(--font-display);font-size:1.15rem;color:var(--text-main);margin:0 0 .25rem 0}.dns-list-container{background:var(--row-bg);border:1px solid var(--card-border);border-radius:16px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto;scrollbar-width:none}.dns-list-container::-webkit-scrollbar{display:none}.dns-list-container::-webkit-scrollbar-thumb{background-color:transparent}.settings-dns-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem .85rem;background:rgba(255,255,255,.02);border:1px solid var(--card-border);border-radius:10px;gap:1rem;transition:all .2s}[data-theme=light] .settings-dns-row{background:rgba(0,0,0,.02)}.settings-dns-row:hover{border-color:var(--primary);background:var(--row-bg-hover)}.domains-list-container{background:var(--row-bg);border:1px solid var(--card-border);border-radius:12px;padding:.5rem;display:flex;flex-direction:column;gap:.4rem;max-height:180px;overflow-y:auto;scrollbar-width:none;margin-top:.5rem}.domains-list-container::-webkit-scrollbar{display:none}.domains-list-container::-webkit-scrollbar-thumb{background-color:transparent}.settings-domain-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem .6rem;background:rgba(255,255,255,.02);border:1px solid var(--card-border);border-radius:8px;gap:.5rem;transition:all .2s}[data-theme=light] .settings-domain-row{background:rgba(0,0,0,.02)}.settings-domain-row:hover{border-color:var(--primary);background:var(--row-bg-hover)}.settings-domain-row-text{font-size:.85rem;color:var(--text-main);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1}.btn-domain-delete{background:0 0;border:none;cursor:pointer;padding:2px;border-radius:4px;transition:background .2s;display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0}.btn-domain-delete:hover{background:rgba(239,68,68,.15)}.settings-dns-row-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.settings-dns-row-info strong{font-size:.95rem;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-dns-row-url{font-size:.75rem;color:var(--text-muted);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-dns-row-actions{display:flex;gap:.35rem;flex-shrink:0}.btn-dns-delete,.btn-dns-edit{background:0 0;border:none;font-size:1rem;cursor:pointer;padding:4px;border-radius:6px;transition:background .2s;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.btn-dns-edit:hover{background:var(--primary-glow)}.btn-dns-delete:hover{background:rgba(239,68,68,.15)}.settings-actions{display:flex;gap:1rem;margin-top:1rem;border-top:1px solid var(--card-border);padding-top:1.5rem}.btn-settings-save{flex:1;background:var(--row-bg-hover);color:var(--text-main);border:1px solid var(--card-border);border-radius:12px;padding:.85rem;font-family:var(--font-display);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s}.btn-settings-reset{flex:1;background:rgba(239,68,68,.08);color:#ef4444;border:1px solid rgba(239,68,68,.2);border-radius:12px;padding:.85rem;font-family:var(--font-display);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s}.btn-settings-reset:hover{background:rgba(239,68,68,.15);border-color:#ef4444}.btn-settings-save:hover{background:var(--card-border);border-color:var(--primary)}.btn-settings-start{flex:1.5;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:none;border-radius:12px;padding:.85rem;font-family:var(--font-display);font-weight:600;font-size:1rem;cursor:pointer;box-shadow:0 4px 15px var(--primary-glow);transition:all .2s}.btn-settings-start:hover{transform:translateY(-1px);box-shadow:0 6px 20px var(--primary-glow)}.btn-form-action{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer;transition:opacity .2s}.btn-form-action.secondary{background:var(--row-bg-hover);color:var(--text-main);border:1px solid var(--card-border)}.btn-form-action:hover{opacity:.9}.results-chart{display:flex;flex-direction:column;gap:.5rem;text-align:left;width:100%;flex-grow:1;overflow-y:auto;padding-right:4px;scrollbar-width:none;padding-bottom:1.5rem;min-height:280px}.results-chart::-webkit-scrollbar{width:6px}.results-chart::-webkit-scrollbar-track{background:0 0}.results-chart::-webkit-scrollbar-thumb{background-color:transparent;border-radius:99px;transition:background-color .3s ease}.results-chart:hover::-webkit-scrollbar-thumb{background-color:var(--primary-glow)}.results-chart::-webkit-scrollbar-thumb:hover{background-color:var(--primary)}.chart-row{display:grid;grid-template-columns:220px 1fr 220px;align-items:center;column-gap:1.2rem;row-gap:0;padding:.5rem 1rem;background:var(--row-bg);border:1px solid var(--card-border);border-radius:12px;transition:all .3s cubic-bezier(.4, 0, .2, 1);position:relative;cursor:pointer}.chart-row:hover:not(.active):not(.expanded){border-color:var(--primary);background:var(--row-bg-hover);transform:translateX(4px)}@keyframes pulse-glow{0%,100%{box-shadow:0 0 8px var(--primary-glow);background:rgba(61,166,255,.06)}50%{box-shadow:0 0 18px rgba(61,166,255,.4);background:rgba(61,166,255,.12)}}.chart-row.active{border-color:var(--primary);animation:pulse-glow 1.5s infinite ease-in-out}.chart-row.expanded{border-color:var(--primary);background:rgba(61,166,255,.04);box-shadow:0 4px 20px rgba(0,0,0,.15);row-gap:.75rem}.chart-details{grid-column:1/-1;max-height:0;opacity:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4, 0, .2, 1),opacity .3s ease,padding-top .3s ease,margin-top .3s ease;padding-top:0;margin-top:0;border-top:1px solid transparent;cursor:default}.chart-row.expanded .chart-details{max-height:500px;opacity:1;margin-top:.5rem;padding-top:.75rem;border-top-color:var(--card-border)}.details-grid{display:grid;grid-template-columns:1.2fr 1.8fr;gap:1.5rem;align-items:stretch;text-align:left}.details-meta{display:flex;flex-direction:column;gap:.85rem;min-width:0}.detail-item{display:flex;flex-direction:column;gap:.25rem;min-width:0}.detail-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.detail-value-wrapper{display:flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.03);border:1px solid var(--card-border);border-radius:8px;padding:.4rem .6rem;max-width:100%;min-width:0}[data-theme=light] .detail-value-wrapper{background:rgba(0,0,0,.03)}.detail-code{font-family:monospace;font-size:.85rem;color:var(--text-main);overflow-x:auto;white-space:nowrap;scrollbar-width:none;flex-grow:1;min-width:0}.detail-code::-webkit-scrollbar{display:none}.btn-copy{background:0 0;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px;transition:color .2s;flex-shrink:0}.btn-copy:hover{color:var(--primary)}.detail-ips-list{display:flex;flex-direction:column;gap:.35rem}.actions-row{margin-top:auto;padding-top:.5rem}.btn-single-test{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:none;border-radius:8px;padding:.5rem 1.25rem;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 2px 10px var(--primary-glow);transition:transform .2s,box-shadow .2s}.btn-single-test:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--primary-glow)}.btn-single-test:active{transform:translateY(1px)}.details-chart-container{display:flex;flex-direction:column;gap:.5rem;height:100%}.svg-graph-wrapper{background:rgba(255,255,255,.01);border:1px solid var(--card-border);border-radius:10px;flex-grow:1;min-height:220px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.graph-watermark-link{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:45%;max-width:240px;height:auto;user-select:none;opacity:.55;z-index:1;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease;cursor:pointer}.graph-watermark-link:hover{opacity:.85}.graph-watermark-link.live-wm{top:calc(50% + 5px);width:50%;max-width:260px}.graph-watermark{width:100%;height:auto;pointer-events:none;display:block}.svg-graph-wrapper svg{width:100%!important;height:100%;display:block;min-width:0}.live-graph-wrapper svg:not(.graph-watermark),.svg-graph-wrapper svg:not(.graph-watermark){pointer-events:none}.svg-graph-wrapper circle,.svg-graph-wrapper g.point-node{pointer-events:auto}.graph-placeholder{font-size:.85rem;color:var(--text-muted);text-align:center;padding:1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;box-sizing:border-box}.svg-graph-wrapper circle{cursor:help;transition:cx .35s cubic-bezier(.25, 1, .5, 1),cy .35s cubic-bezier(.25, 1, .5, 1),transform .2s ease,fill .2s ease;transform-origin:center;transform-box:fill-box}.svg-graph-wrapper circle:hover{transform:scale(1.35);fill:var(--accent)}.chart-row.completed{border-color:var(--card-border)}.chart-row.completed.fastest{background:rgba(16,185,129,.08);box-shadow:0 0 18px rgba(16,185,129,.22);border-color:rgba(16,185,129,.55)}@keyframes draw-path{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}@keyframes fade-in-point{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes pulse-point{0%,100%{r:6.5px;stroke-width:2.5;filter:drop-shadow(0 0 2px var(--accent-glow))}50%{r:8.5px;stroke-width:3.5;filter:drop-shadow(0 0 8px var(--accent))}}@keyframes pulse-point-mobile{0%,100%{r:4.5px;stroke-width:1.5;filter:drop-shadow(0 0 1.5px var(--accent-glow))}50%{r:6.0px;stroke-width:2.2;filter:drop-shadow(0 0 5px var(--accent))}}.svg-graph-wrapper circle.latest-point{animation:pulse-point 1.8s infinite ease-in-out;fill:var(--accent)!important;stroke:var(--text-main)!important}.svg-graph-wrapper text.latest-val{fill:var(--accent)!important;font-weight:800!important;font-size:1.1em!important;filter:drop-shadow(0 0 2px var(--accent-glow))}.svg-graph-wrapper path:not(.animated-path){transition:d .35s cubic-bezier(.25, 1, .5, 1),fill .35s cubic-bezier(.25, 1, .5, 1)}.svg-graph-wrapper text{transition:x .35s cubic-bezier(.25, 1, .5, 1),y .35s cubic-bezier(.25, 1, .5, 1),opacity .35s ease}.graph-value-label{fill:var(--text-main)}.graph-q-label{fill:var(--text-muted)}.svg-graph-wrapper g.point-node{transition:opacity .35s ease}.svg-graph-wrapper .animated-point{opacity:0;animation:fade-in-point .4s cubic-bezier(.34,1.56,.64,1) forwards}.svg-graph-wrapper .animated-path{stroke-dasharray:1000;stroke-dashoffset:1000;animation:draw-path 1.2s cubic-bezier(.25,1,.5,1) forwards}@keyframes fade-in-opacity{from{opacity:0}to{opacity:1}}@keyframes new-point-pop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.svg-graph-wrapper circle.new-point{transform-origin:center;transform-box:fill-box;animation:new-point-pop .35s cubic-bezier(.34,1.56,.64,1) forwards}.svg-graph-wrapper text.graph-value-label.new-point{animation:fade-in-opacity .3s ease-out forwards}.chart-row.failed{border-color:rgba(239,68,68,.2);background:rgba(239,68,68,.02);opacity:.5}.chart-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.chart-name{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--text-main);display:flex;align-items:center;gap:.6rem;transition:color .3s ease;min-width:0}.chart-name span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.provider-icon{width:20px;height:20px;border-radius:5px;object-fit:contain;background:rgba(255,255,255,.08);border:1px solid var(--card-border);padding:1.5px;flex-shrink:0;display:inline-block}[data-theme=light] .provider-icon{background:rgba(0,0,0,.04)}.chart-ips{font-size:.7rem;color:var(--text-muted);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s ease}.chart-bar-container{width:100%;height:10px;background:var(--row-bg-hover);border-radius:999px;position:relative;overflow:hidden;border:1px solid var(--card-border)}.chart-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--primary),var(--accent));box-shadow:0 0 8px var(--accent-glow);border-radius:999px;transition:width 1.2s cubic-bezier(.25, 1, .5, 1)}.chart-bar.testing{background:linear-gradient(90deg,var(--primary),var(--accent),var(--primary));background-size:200% 100%;animation:bar-running 3s infinite linear;box-shadow:0 0 10px var(--primary-glow)}@keyframes bar-running{0%{background-position:200% 0}100%{background-position:0 0}}.chart-row.completed.fastest .chart-bar{background:linear-gradient(90deg,var(--success),#34d399);box-shadow:0 0 8px rgba(16,185,129,.3)}.chart-stats{display:flex;justify-content:flex-end;align-items:center;gap:.6rem;font-family:var(--font-display)}.chart-latency{font-size:1.05rem;font-weight:700;color:var(--text-muted);min-width:60px;text-align:right;transition:color .3s ease}.chart-row.completed .chart-latency{color:var(--text-main)}.chart-row.completed.fastest .chart-latency{color:var(--success);font-weight:800}.chart-row.failed .chart-latency{color:#ef4444;font-size:.85rem;font-weight:600}.chart-saving{font-size:.75rem;font-weight:600;color:var(--text-muted);background:var(--row-bg-hover);padding:.15rem .4rem;border-radius:5px;min-width:75px;text-align:center;white-space:nowrap;transition:all .3s ease}.chart-row.completed .chart-saving{color:var(--accent);background:rgba(6,182,212,.08);border:1px solid rgba(6,182,212,.1)}.chart-row.completed.fastest .chart-saving{color:var(--success);background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.1)}.form-row-split{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@container (max-width:768px){.chart-row.expanded .chart-details{max-height:750px}.svg-graph-wrapper{min-height:155px}.svg-graph-wrapper circle.latest-point{animation:pulse-point-mobile 1.8s infinite ease-in-out}.svg-graph-wrapper text.latest-val{font-size:8.5px!important;font-weight:800!important}.graph-value-label{font-size:7.5px!important}.graph-q-label{font-size:7px!important}.form-row-split{grid-template-columns:1fr}#dnsspeedtester-root{padding:.75rem}.control-panel{gap:.8rem;padding:.8rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 1.5rem);max-width:440px;border-radius:12px}.control-panel.hidden{transform:translate(-50%,-30%)}.control-panel.faded-bottom{width:calc(100% - 1.5rem)!important;max-width:440px!important;border-radius:12px!important;padding:.8rem!important}.console-btn{height:46px;width:46px;border-radius:10px}.btn-test{padding:0 1rem;font-size:1.05rem;height:46px}.settings-container{grid-template-columns:1fr;max-height:95vh;padding:1.5rem;border-radius:20px;gap:1.25rem;width:calc(100% - 1.5rem)}.settings-container h2{font-size:1.4rem}.settings-actions{flex-direction:column;gap:.5rem}.results-chart{padding-bottom:20px}.chart-row{grid-template-columns:1fr auto;gap:.6rem;padding:.8rem 1rem;align-items:center}.chart-info{grid-column:1;grid-row:1}.chart-stats{grid-column:2;grid-row:1;justify-content:flex-end;gap:.4rem}.chart-bar-container{grid-column:1/span 2;grid-row:2;margin-top:.2rem}.chart-ips{display:none}.chart-saving{min-width:unset;font-size:.75rem;padding:.15rem .35rem;white-space:nowrap}.chart-latency{font-size:.95rem;min-width:45px;white-space:nowrap}.details-grid{grid-template-columns:1fr;gap:1rem}.actions-row{margin-top:.5rem}}@container (max-width:380px){.chart-row{gap:.4rem;padding:.6rem .6rem}.chart-name{font-size:.9rem;gap:.4rem}.provider-icon{width:20px;height:20px;border-radius:4px}.chart-latency{font-size:.85rem;min-width:38px}.chart-saving{font-size:.7rem;padding:.1rem .25rem}.chart-stats{gap:.25rem}}.select-concurrency{background:var(--select-bg);color:var(--text-main);border:1px solid var(--card-border);border-radius:8px;padding:.25rem .5rem;cursor:pointer;font-family:var(--font-display);font-weight:600;outline:0;transition:all .2s ease}.select-concurrency:focus{border-color:var(--accent)}.theme-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .5s cubic-bezier(.4, 0, .2, 1)}[data-theme=light] .theme-icon{transform:rotate(180deg)}.sun-icon{display:block}.moon-icon{display:none}[data-theme=light] .sun-icon{display:none}[data-theme=light] .moon-icon{display:block}.custom-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:999;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .3s ease}.custom-dialog-overlay.active{opacity:1;pointer-events:auto}.custom-dialog-box{background:var(--modal-bg);border:1px solid var(--card-border);border-radius:20px;padding:1.75rem;width:90%;max-width:400px;box-shadow:0 20px 40px rgba(0,0,0,.4);transform:scale(.9);transition:transform .3s cubic-bezier(.34, 1.56, .64, 1)}.custom-dialog-overlay.active .custom-dialog-box{transform:scale(1)}.custom-dialog-box h3{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--text-main);margin:0 0 .5rem 0}.custom-dialog-box p{font-size:.95rem;color:var(--text-muted);margin:0 0 1.5rem 0;line-height:1.5}.custom-dialog-actions{display:flex;justify-content:flex-end;gap:.75rem}.btn-dialog-primary,.btn-dialog-secondary{padding:.55rem 1.25rem;font-family:var(--font-display);font-weight:600;font-size:.9rem;border-radius:10px;cursor:pointer;transition:all .2s}.btn-dialog-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border:none;box-shadow:0 4px 12px var(--primary-glow)}.btn-dialog-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px var(--primary-glow)}.btn-dialog-secondary{background:var(--row-bg-hover);color:var(--text-main);border:1px solid var(--card-border)}.btn-dialog-secondary:hover{background:var(--card-border)}.app-header{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:.5rem .8rem;backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);margin-bottom:1rem;display:flex;flex-direction:column;gap:.15rem;flex-shrink:0;box-shadow:none;max-height:0;opacity:0;transform:translateY(-15px) scale(.98);pointer-events:none;overflow:hidden;margin-bottom:0;border-width:0;padding:0 .8rem;transition:max-height .5s cubic-bezier(.16, 1, .3, 1),opacity .4s cubic-bezier(.16, 1, .3, 1),transform .5s cubic-bezier(.16, 1, .3, 1),margin-bottom .5s cubic-bezier(.16, 1, .3, 1),padding .5s cubic-bezier(.16, 1, .3, 1),border-width .5s cubic-bezier(.16, 1, .3, 1)}.app-header.active{max-height:180px;opacity:1;transform:translateY(0) scale(1);pointer-events:auto;margin-bottom:1rem;border-width:1px;padding:.5rem .8rem}.header-progress-bar-container{width:100%;display:flex;flex-direction:column;gap:.25rem}.header-progress-bar-bg{width:100%;height:8px;background:rgba(255,255,255,.05);border-radius:99px;border:1px solid var(--card-border);position:relative}[data-theme=light] .header-progress-bar-bg{background:rgba(0,0,0,.05)}.header-progress-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--primary),var(--accent));background-size:200% 100%;animation:progress-glow-flow 4s infinite linear;box-shadow:0 0 10px var(--primary-glow),0 0 4px var(--accent-glow);border-radius:99px;transition:width .4s cubic-bezier(.25, 1, .5, 1);position:relative}@keyframes progress-glow-flow{0%{background-position:0 50%}100%{background-position:200% 50%}}.header-progress-bar-fill::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.15) 50%,rgba(255,255,255,0) 100%);background-size:200% 100%;animation:progress-sheen 2.5s infinite linear;border-radius:99px}@keyframes progress-sheen{0%{background-position:200% 0}100%{background-position:-200% 0}}.live-dashboard-container{width:100%;display:flex;flex-direction:column;gap:0}.live-graph-wrapper{background:0 0;border:none;border-radius:0;height:85px;display:flex;align-items:center;justify-content:center;position:relative;overflow:visible;margin:-.5rem -.8rem 0 -.8rem;transition:border-color .3s ease}[data-theme=light] .live-graph-wrapper{background:rgba(0,0,0,.01)}.live-graph-wrapper svg{width:100%;height:100%;display:block}@container (max-width:550px){.app-header{padding:.6rem .8rem;gap:.25rem}.app-header.active{max-height:160px}.live-graph-wrapper{height:55px;margin:-.6rem -.8rem 0 -.8rem}.svg-graph-wrapper .graph-watermark-link{width:32%;max-width:140px}.live-graph-wrapper .graph-watermark-link{width:40%;max-width:180px}}.graph-tooltip{position:fixed;background:var(--card-bg);border:1px solid var(--primary);color:var(--text-main);padding:6px 10px;border-radius:6px;font-family:var(--font-body);font-size:.8rem;pointer-events:none;z-index:9999;opacity:0;visibility:hidden;box-shadow:0 4px 15px rgba(0,0,0,.4);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:opacity .2s ease,visibility .2s ease;white-space:nowrap}@media (max-width:550px){.graph-tooltip{padding:4px 8px;font-size:.75rem}}.titlebar-hover-zone{position:fixed;top:0;left:0;right:0;height:15px;z-index:9998}.custom-titlebar{position:fixed;top:0;left:0;right:0;height:32px;background:var(--card-bg);backdrop-filter:blur(20px);border-bottom:1px solid var(--card-border);display:none;justify-content:space-between;align-items:center;z-index:10000;opacity:0;transform:translateY(-100%);transition:all .25s cubic-bezier(.4, 0, .2, 1)}html[data-platform=app] .custom-titlebar,html[data-platform=app] .titlebar-hover-zone{display:flex}html[data-os=macos] .custom-titlebar,html[data-os=macos] .titlebar-hover-zone,html[data-platform=web] .custom-titlebar,html[data-platform=web] .titlebar-hover-zone{display:none!important}.custom-titlebar:hover,.titlebar-hover-zone:hover+.custom-titlebar{opacity:1;transform:translateY(0)}.titlebar-drag-region{flex-grow:1;height:100%;display:flex;align-items:center;padding-left:12px;font-size:.75rem;color:var(--text-muted);font-weight:600;user-select:none;-webkit-user-select:none}.titlebar-buttons{display:flex;height:100%}.titlebar-btn{width:40px;height:100%;background:0 0;border:none;color:var(--text-main);cursor:default;display:flex;justify-content:center;align-items:center;transition:background .15s}.titlebar-btn:hover{background:rgba(255,255,255,.1)}[data-theme=light] .titlebar-btn:hover{background:rgba(0,0,0,.05)}.titlebar-btn.close-btn:hover{background:#e81123;color:#fff}