:root{--bg:#f7f7f5;--card:#fff;--text:#1c1c1a;--muted:#6b6b66;--border:#e4e4df;--online:#1f8a4c;--internet-down:#c0392b;--local-problem:#c98a12;--no-data:#9a9a94;--away:#5b6ee1}@media (prefers-color-scheme:dark){:root{--bg:#151514;--card:#1f1f1d;--text:#ececea;--muted:#a0a09a;--border:#2f2f2c}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:960px;margin:0 auto;padding:24px 16px}h1{margin:0 0 20px;font-size:1.4rem}.cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px}.card h2{margin:0 0 4px;font-size:1.05rem}.package{color:var(--muted);font-size:.9rem}.status{align-items:center;gap:6px;margin-top:12px;font-weight:600;display:inline-flex}.status:before{content:"";background:var(--dot);border-radius:50%;width:10px;height:10px}.status-online{--dot:var(--online)}.status-internet_down{--dot:var(--internet-down)}.status-local_problem{--dot:var(--local-problem)}.status-no_data{--dot:var(--no-data)}.empty{color:var(--muted)}.outages{margin-top:28px}.outages h2{margin:0 0 10px;font-size:1.05rem}.outages ol{border-left:2px solid var(--border);margin:0;padding:0;list-style:none}.outages li{flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:6px 0 6px 14px;display:flex;position:relative}.outages li:before{content:"";background:var(--internet-down);opacity:.45;border-radius:50%;width:10px;height:10px;position:absolute;top:12px;left:-6px}.outages li.confirmed:before{opacity:1}.outages time{color:var(--muted);min-width:4.5em}.outages .span{font-variant-numeric:tabular-nums}.outages .tag{color:var(--internet-down);font-size:.8rem;font-weight:600}.figures{grid-template-columns:auto 1fr;gap:2px 12px;margin:10px 0 0;font-size:.9rem;display:grid}.figures dt{color:var(--muted)}.figures dd{font-variant-numeric:tabular-nums;margin:0}.speed{grid-template-columns:auto 1fr;gap:2px 12px;margin:12px 0 0;font-size:.9rem;display:grid}.speed dt{color:var(--muted)}.speed dd{font-variant-numeric:tabular-nums;margin:0}.speed-none{color:var(--muted);display:block}.card{position:relative}.card h2 a{color:inherit;text-decoration:none}.card h2 a:after{content:"";border-radius:10px;position:absolute;inset:0}.card:hover{border-color:var(--muted)}:root{--download:#2a6fdb;--upload:#12a39a;--package:#1c1c1a;--latency:#8a4fd1;--cable:#4a4a46;--wifi:#d9822b;--link-unknown:#c9c9c3;--no-data-fill:#e4e4df;--pc-off:#a9a9c4}@media (prefers-color-scheme:dark){:root{--package:#ececea;--cable:#b5b5ae;--link-unknown:#4a4a46;--download:#5b95ef;--no-data-fill:#3d3d39;--pc-off:#55556e}}.back{color:var(--muted);font-size:.9rem;text-decoration:none}.house h1{margin:8px 0 4px}.house h2{margin:28px 0 8px;font-size:1rem}.house-facts{color:var(--muted);flex-wrap:wrap;gap:4px 8px;margin:0;font-size:.9rem;display:flex}.house-facts dd{color:var(--text);margin:0 12px 0 0}.range{flex-wrap:wrap;align-items:end;gap:8px 12px;margin-top:16px;display:flex}.range label{color:var(--muted);gap:2px;font-size:.85rem;display:grid}.range input,.range button{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:6px;padding:6px 8px}.range button{cursor:pointer;font-weight:600}.chart{background:var(--card);border:1px solid var(--border);border-radius:10px;margin:0;padding:12px 12px 8px}.plot{height:180px;margin-left:56px;position:relative}.plot svg,.band{width:100%;display:block;overflow:visible}.plot svg{height:100%}.axis-y{width:56px;position:absolute;top:0;bottom:0;right:100%}.axis-y span{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.72rem;position:absolute;right:6px;transform:translateY(-50%)}.axis-x{height:18px;margin:4px 0 0 56px;position:relative}.axis-x span{color:var(--muted);white-space:nowrap;font-size:.72rem;position:absolute;transform:translate(-50%)}.grid{stroke:var(--border);stroke-width:1px}.series{fill:none;stroke-width:1.5px;stroke-linejoin:round}.series.download{stroke:var(--download)}.series.upload{stroke:var(--upload)}.series.latency{stroke:var(--latency)}.dot{stroke-width:6px;stroke-linecap:round}.dot.download{stroke:var(--download)}.dot.upload{stroke:var(--upload)}.dot.latency{stroke:var(--latency);stroke-width:4px}.test.link-wifi .dot,.test.link-unknown .dot{stroke:var(--wifi)}.package-line{stroke:var(--package);stroke-width:1.5px;stroke-dasharray:5 4}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:.8rem;display:flex}.key:before{content:"";vertical-align:middle;background:var(--k);width:12px;height:3px;margin-right:6px;display:inline-block}.key.download{--k:var(--download)}.key.upload{--k:var(--upload)}.key.package-key:before{border-top:2px dashed var(--package);background:0 0;height:0}.key.wifi-key:before{background:var(--wifi);border-radius:50%;width:8px;height:8px}.key.swatch:before{border-radius:2px;width:10px;height:10px}.timeline .band{height:22px}.band-label{color:var(--muted);margin:6px 0 2px 56px;font-size:.75rem}.timeline .band,.timeline .axis-x{width:calc(100% - 56px);margin-left:56px}.timeline .band-label:first-child{margin-top:0}.seg-online{fill:var(--online);--k:var(--online)}.seg-internet_down{fill:var(--internet-down);--k:var(--internet-down)}.seg-local_problem{fill:var(--local-problem);--k:var(--local-problem)}.seg-away{fill:var(--away);--k:var(--away)}.seg-pc_off{fill:var(--pc-off);--k:var(--pc-off)}.power-mark{stroke:var(--text);stroke-width:1.5px}.seg-no_data{fill:var(--no-data-fill);--k:var(--no-data-fill)}.seg-link-cable{fill:var(--cable);--k:var(--cable)}.seg-link-wifi{fill:var(--wifi);--k:var(--wifi)}.seg-link-unknown{fill:var(--link-unknown);--k:var(--link-unknown)}@media (max-width:480px){.plot{height:150px;margin-left:44px}.axis-y{width:44px}.axis-x,.band-label,.timeline .band,.timeline .axis-x{margin-left:44px}.timeline .band,.timeline .axis-x{width:calc(100% - 44px)}}
