:root{color-scheme:dark;--bg:#0b111b;--card:#111b28;--card-soft:#152231;--text:#edf4fb;--muted:#a2b2c4;--line:#263343;--blue:#63a8ff;--green:#40d4a1;--danger:#ff9b98;--button:#236bd1;--shadow:0 12px 45px #0000001a;--radius:20px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
:root[data-theme=light]{color-scheme:light;--bg:#f4f7fb;--card:#fff;--card-soft:#f3f7fc;--text:#14253a;--muted:#53677f;--line:#d8e2ee;--blue:#205eb9;--green:#077856;--danger:#b83136;--button:#165fc3;--shadow:0 12px 45px #14253a08}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}h1,h2,h3,p{margin:0}button .icon,a .icon{flex-shrink:0}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}[hidden]{display:none!important}.shell{width:min(980px,calc(100% - 48px));margin-inline:auto}.site-header{border-bottom:1px solid var(--line)}.header-inner{height:88px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:22px}.brand img{display:block;width:180px;height:auto;object-fit:contain;background:transparent;border:0;box-shadow:none;padding:0;border-radius:0}.brand>span{border-left:1px solid var(--line);padding-left:22px;font-size:10px;letter-spacing:.17em;color:var(--muted);font-weight:600}.header-actions{display:flex;align-items:center;gap:22px}.connection-state{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.connection-state i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 9%,transparent)}.connection-state.offline i{background:var(--danger)}.icon-button{border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--muted);width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center}.icon-button:hover{background:var(--card-soft);color:var(--text)}.icon-button.small{width:32px;height:32px;border:0}.icon-button.small .icon{width:17px;height:17px}.tool-tabs{display:flex;gap:5px;align-items:center;border-bottom:1px solid var(--line);padding-top:17px}.tool-tabs a{display:flex;align-items:center;gap:9px;color:var(--muted);font-weight:600;padding:15px 18px;border-bottom:2px solid transparent;margin-bottom:-1px}.tool-tabs a:first-child{padding-left:4px;padding-right:22px}.tool-tabs a.active{color:var(--blue);border-bottom-color:var(--blue)}.tool-tabs a:hover{color:var(--text)}.tool-tabs .icon{width:18px;height:18px}.page-heading{padding:29px 0 22px}.eyebrow{display:block;color:var(--muted);font-size:10px;letter-spacing:.14em;font-weight:600}.page-heading h1{font-size:clamp(26px,3.3vw,36px);font-weight:650;letter-spacing:-.045em;line-height:1.25;margin:8px 0 9px}.page-heading p{color:var(--muted);font-size:14px}.identity-bar{display:flex;align-items:center;gap:18px;padding:12px 17px;border:1px solid var(--line);border-radius:12px;margin-bottom:17px;background:color-mix(in srgb,var(--card) 65%,transparent)}.identity-label,.identity-value{display:flex;align-items:center;gap:10px}.identity-label{color:var(--muted);font-size:12px}.identity-label>.icon{color:var(--blue);width:17px;height:17px}.identity-value{min-width:0;flex:1}.identity-value strong{font-family:"SFMono-Regular",Consolas,monospace;letter-spacing:-.02em;font-size:13px;overflow-wrap:anywhere}.tiny-badge{font-size:10px;padding:3px 7px;border:1px solid var(--line);border-radius:5px;color:var(--muted);white-space:nowrap;flex-shrink:0}.text-link{border:0;background:transparent;color:var(--blue);padding:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:600;min-height:32px}.text-link:hover{text-decoration:underline;text-underline-offset:3px}.text-link .icon{width:16px;height:16px}.identity-note{font-size:11px;color:var(--muted);margin:-7px 2px 15px;max-width:780px}.test-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);padding:23px 27px 16px}.card-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-toolbar h2{font-size:14px;font-weight:600;display:flex;gap:9px;align-items:center}.card-toolbar h2 .icon{color:var(--blue);width:18px;height:18px}.status-badge{font-size:11px;color:var(--muted);padding:4px 10px;background:var(--card-soft);border:1px solid var(--line);border-radius:20px}.status-badge.running{color:var(--blue);border-color:var(--blue)}.status-badge.success{color:var(--green)}.status-badge.error{color:var(--danger)}.speed-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:34px;align-items:center;padding:20px 0 25px}.gauge-wrap{max-width:320px;width:100%;position:relative;justify-self:center}.gauge{display:block;width:100%;height:auto;overflow:visible}.gauge-underlay{stroke:var(--card-soft);stroke-width:22;fill:none;stroke-linecap:round}.gauge-track{stroke:var(--line);stroke-width:9;fill:none;stroke-linecap:round}.gauge-progress{stroke:url(#gaugeGradient);stroke-width:9;fill:none;stroke-linecap:round;transition:stroke-dashoffset .2s ease-out}.gauge text{font-family:inherit;font-size:10px;fill:var(--muted)}.gauge-value{position:absolute;top:76px;left:30px;right:30px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1px}.gauge-value>span:first-child{font-size:8px;letter-spacing:.15em;color:var(--muted);font-weight:600}.gauge-value strong{font-size:58px;letter-spacing:-.055em;line-height:1.3;font-weight:600;font-variant-numeric:tabular-nums}.gauge-value strong span{color:var(--muted)}.gauge-value>span:last-child{font-size:12px;color:var(--muted)}.step-track{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:9px;font-size:10px;color:var(--muted)}.step-track i{width:13px;height:1px;background:var(--line)}.step-track span.active{color:var(--blue)}.step-track span.done{color:var(--green)}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:11px}.metric{background:var(--card-soft);border:1px solid var(--line);border-radius:12px;padding:15px 16px}.metric>div{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.metric>div .icon{width:16px;height:16px}.metric.download>div .icon{color:var(--blue)}.metric.upload>div .icon{color:var(--green)}.metric p{display:flex;align-items:baseline;gap:6px;margin:8px 0 1px;flex-wrap:wrap}.metric p strong{font-size:29px;font-weight:600;line-height:1.2;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.metric p span{color:var(--muted);font-size:10px}.metric small{font-size:10px;color:var(--muted)}.test-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:20px;border-top:1px solid var(--line)}.profile-control{display:flex;align-items:center;gap:12px}.profile-control label{font-size:11px;color:var(--muted)}select{border:1px solid var(--line);border-radius:9px;background:var(--card-soft);color:var(--text);padding:10px 28px 10px 11px;font-size:12px;max-width:100%}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:44px;border:1px solid transparent;border-radius:10px;padding:10px 18px;font-size:12px;font-weight:600;text-align:center;transition:background .15s}.button .icon{width:17px;height:17px}.primary{background:var(--button);color:#fff}.primary:hover{background:#1c58b0}.secondary{border-color:var(--line);background:transparent;color:var(--text)}.secondary:hover{background:var(--card-soft)}.test-buttons{display:flex;align-items:center;gap:8px}.status-line{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-top:14px;font-size:11px;color:var(--muted)}.status-line p{max-width:90%}.status-line>span{font-family:Consolas,monospace;font-size:11px;padding-top:1px}.status-line .error,.whois-status.error{color:var(--danger)}.status-line .success,.whois-status.success{color:var(--green)}.result-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:15px;padding-top:12px}.result-actions>span{color:var(--muted);font-size:11px}.help{margin:17px 0 23px;color:var(--muted);font-size:12px}.help summary{cursor:pointer;display:flex;align-items:center;gap:7px;min-height:32px;list-style:none}.help summary::-webkit-details-marker{display:none}.help summary .icon{width:16px;height:16px}.help summary:after{content:'+';margin-left:auto;font-size:18px;color:var(--muted)}.help[open] summary:after{content:'−'}.help>div{max-width:870px;padding:12px 0 0 23px;line-height:1.7}.help p+p{margin-top:9px}.promo{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid var(--line);border-radius:14px;padding:21px 25px;background:linear-gradient(115deg,color-mix(in srgb,var(--green) 6%,var(--card)),color-mix(in srgb,var(--blue) 6%,var(--card)))}.promo .eyebrow{font-size:8px;letter-spacing:.15em}.promo h2{font-size:20px;font-weight:600;letter-spacing:-.035em;margin:6px 0}.promo p{font-size:12px;line-height:1.7;color:var(--muted)}.ad-button{border-color:var(--line);background:var(--card);font-size:11px;white-space:nowrap;flex-shrink:0}.ad-button:hover{border-color:var(--blue)}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-block:22px 26px;color:var(--muted);font-size:10px}.site-footer>span a{color:var(--text);font-weight:600}.site-footer>div{display:flex;align-items:center;gap:15px}.site-footer a:hover{color:var(--blue)}.lookup-form{margin-top:24px}.lookup-form label{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.lookup-input-row{display:flex;gap:9px}.lookup-input-row input{border:1px solid var(--line);border-radius:10px;background:var(--card-soft);color:var(--text);padding:12px 14px;min-width:0;flex:1;font-family:"SFMono-Regular",Consolas,monospace;font-size:13px}.lookup-input-row input::placeholder{color:var(--muted);font-size:11px}.lookup-input-row .button{flex-shrink:0}.whois-status{color:var(--muted);font-size:11px;padding:14px 0;min-height:45px}.whois-result-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:21px 0 16px;border-top:1px solid var(--line)}.whois-result-head h3{font-size:24px;font-weight:600;letter-spacing:-.04em;overflow-wrap:anywhere;font-family:"SFMono-Regular",Consolas,monospace;margin-top:5px}.whois-result-head>div{min-width:0}.whois-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin:0}.whois-grid>div{padding:16px 0;border-top:1px solid var(--line);min-width:0}.whois-grid dt{color:var(--muted);font-size:11px;margin-bottom:6px}.whois-grid dd{font-size:13px;margin:0;overflow-wrap:anywhere}.whois-result-actions{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:13px 0 0;border-top:1px solid var(--line);margin-top:5px}.whois-empty{text-align:center;border-top:1px solid var(--line);padding:31px 15px 30px;display:flex;flex-direction:column;align-items:center}.empty-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--card-soft);color:var(--blue);margin-bottom:11px}.empty-icon .icon{width:25px;height:25px}.whois-empty strong{font-size:14px;font-weight:500}.whois-empty p{color:var(--muted);font-size:12px;margin-top:7px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,15px);background:var(--text);color:var(--bg);padding:12px 18px;border-radius:10px;font-size:13px;z-index:100;box-shadow:var(--shadow);opacity:0;pointer-events:none;max-width:calc(100% - 32px);transition:opacity .15s,transform .15s}.toast.visible{opacity:1;transform:translate(-50%,0)}.notice{padding:15px;border:1px solid var(--danger);border-radius:9px;margin-top:15px;font-size:12px}.skip-link{position:fixed;top:-70px;left:20px;padding:10px 18px;background:var(--text);color:var(--bg);z-index:200;border-radius:8px}.skip-link:focus{top:12px}main:focus{outline:0}
@media(min-width:1000px){.speed-layout{grid-template-columns:1fr 1.06fr}}
@media(max-width:740px){.shell{width:calc(100% - 32px)}.header-inner{height:74px}.brand img{width:155px}.brand>span{display:none}.header-actions{gap:12px}.connection-state{font-size:11px}.tool-tabs{padding-top:9px}.tool-tabs a{padding-block:13px}.page-heading{padding:25px 0 20px}.identity-bar{flex-wrap:wrap;gap:5px 12px;padding:11px 13px}.identity-label{flex-basis:100%}.identity-value strong{font-size:12px}.identity-note{font-size:10px}.test-card{padding:20px 20px 16px}.speed-layout{grid-template-columns:1fr 1.05fr;gap:15px}.gauge-value{top:24%;left:20px;right:20px}.gauge-value strong{font-size:clamp(32px,7vw,50px)}.gauge-value>span:first-child{font-size:7px}.metrics{gap:8px}.metric{padding:12px}.metric p strong{font-size:25px}.metric small{font-size:9px}.profile-control{gap:8px}.profile-control label{display:none}.promo{padding:21px}.promo h2{font-size:19px}.ad-button{padding:10px 13px;font-size:10px}.lookup-input-row{flex-wrap:wrap}.lookup-input-row input{flex-basis:100%;font-size:16px}.lookup-input-row .button{flex:1}.whois-result-head h3{font-size:20px}}
@media(max-width:520px){.header-inner{height:70px}.brand img{width:146px}.header-actions{gap:10px}.connection-state{font-size:10px;gap:6px}.icon-button{height:35px;width:35px}.tool-tabs a{font-size:12px}.page-heading h1{font-size:27px;letter-spacing:-.05em}.page-heading p{font-size:12px}.eyebrow{font-size:9px}.ip-detail{font-size:10px}.identity-label{font-size:11px}.identity-value{gap:7px}.identity-value strong{font-size:11px}.tiny-badge{font-size:9px;padding:2px 5px}.test-card{padding:18px 16px 15px;border-radius:16px}.speed-layout{grid-template-columns:1fr;gap:21px;padding:20px 0}.gauge-wrap{max-width:260px}.gauge-value{top:61px}.gauge-value strong{font-size:48px}.gauge-value>span:first-child{font-size:7px}.gauge-value>span:last-child{font-size:11px}.step-track{margin-top:3px}.metric{padding:13px 15px}.metric p{margin-top:7px}.metric p strong{font-size:28px}.metric small{font-size:10px}.metric>div{font-size:11px}.test-controls{flex-direction:column;align-items:stretch;gap:12px;padding-top:17px}.profile-control{justify-content:space-between}.profile-control label{display:block}.profile-control select{font-size:11px;min-height:38px}.test-buttons{width:100%}.test-buttons .primary{flex:1}.status-line{font-size:10px;gap:10px;padding-top:12px}.status-line>span{font-size:10px}.status-line p{max-width:85%}.help{font-size:11px;margin:13px 0 18px}.help>div{padding-left:0}.promo{flex-direction:column;align-items:flex-start;gap:14px;padding:20px}.promo h2{font-size:21px}.promo p{font-size:11px}.promo .ad-button{font-size:11px;min-height:40px}.site-footer{font-size:9px;padding-top:19px;align-items:flex-start}.site-footer>div{gap:9px;flex-wrap:wrap;justify-content:flex-end;max-width:50%}.lookup-form{margin-top:21px}.lookup-input-row .button{font-size:11px}.whois-result-head h3{font-size:17px}.whois-grid{gap:0 16px}.whois-grid dd{font-size:12px}.whois-grid dt{font-size:10px}.whois-result-actions .text-link{font-size:11px}.result-actions{flex-direction:column;align-items:flex-start;gap:6px}}
@media(max-width:350px){.connection-state{display:none}.page-heading h1{font-size:25px}.whois-grid{grid-template-columns:1fr}.identity-value strong{font-size:10px}.ip-detail{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.tool-tabs,.promo,.help,.test-controls,.text-link,.icon-button,.lookup-form,.whois-empty,.identity-note,.toast{display:none!important}:root{--bg:#fff;--card:#fff;--card-soft:#f7f7f7;--text:#111;--muted:#444;--line:#ccc;color-scheme:light}.shell{width:100%}.test-card{box-shadow:none}.page-heading{padding-top:10px}}
/* Auf dem Handy ist der Startknopf sofort erreichbar, vor der Messanzeige. */
@media(max-width:520px){body[data-page=speedtest] .test-card{display:flex;flex-direction:column}body[data-page=speedtest] .card-toolbar{order:0}body[data-page=speedtest] .test-controls{order:1;border-top:0;border-bottom:1px solid var(--line);padding-bottom:17px}body[data-page=speedtest] .speed-layout{order:2}body[data-page=speedtest] .status-line{order:3;padding-top:0}body[data-page=speedtest] .result-actions{order:4}.gauge-value strong[data-compact=true]{font-size:36px}}
.gauge-value strong[data-compact=true]{font-size:40px}
