:root{--bg:#0b1020;--bg-soft:#121a33;--card:#16203d;--card-2:#1b2748;--border:#26345c;--text:#e8edf7;--muted:#9aa8c7;--brand:#4f8cff;--brand-2:#7c5cff;--good:#2ecc71;--bad:#ff5c7c;--warn:#ffb020;--radius:16px;--shadow:0 10px 40px #00000059}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 50% -10%, #1a2546 0%, var(--bg) 55%);color:var(--text);min-height:100vh;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:960px;margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--border);padding:22px 0}.site-header .container{justify-content:space-between;align-items:center;gap:16px;display:flex}.logo{color:var(--text);align-items:center;gap:10px;font-size:20px;font-weight:800;display:flex}.logo .dot{background:linear-gradient(135deg, var(--brand), var(--brand-2));width:12px;height:12px;box-shadow:0 0 14px var(--brand);border-radius:50%}.nav a{color:var(--muted);margin-left:18px;font-size:14px}.hero{text-align:center;padding:44px 0 18px}.hero h1{letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(28px,5vw,44px)}.hero p{color:var(--muted);max-width:620px;margin:0 auto;font-size:17px}.cta-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}.cta{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:11px 22px;font-size:15px;font-weight:600;transition:border-color .15s,transform 80ms}.cta:hover{border-color:var(--brand);text-decoration:none}.cta:active{transform:scale(.97)}.cta-primary{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;border:0}.health{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin:22px 0;padding:24px}.health-top{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.health-score{border:4px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:baseline;width:120px;height:120px;display:flex}.health-score--good{border-color:var(--good);background:#2ecc7114}.health-score--warn{border-color:var(--warn);background:#ffb02014}.health-score--bad{border-color:var(--bad);background:#ff5c7c14}.health-num{font-variant-numeric:tabular-nums;font-size:44px;font-weight:800}.health-max{color:var(--muted);font-size:15px}.health-meta{flex:240px}.health-meta h2{margin:0 0 2px;font-size:20px}.health-label{color:var(--muted);margin:0 0 12px}.health-chips{flex-wrap:wrap;gap:8px;display:flex}.health-chip{border:1px solid var(--border);border-radius:10px;flex-direction:column;min-width:72px;padding:6px 12px;display:inline-flex}.health-chip.ok{border-color:#2ecc7166}.hc-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.hc-value{font-size:15px;font-weight:700}.health-recs{margin:18px 0 0;padding-left:18px}.health-recs li{color:#c9d3ec;margin:6px 0;font-size:14px}.health-cta{color:var(--muted);margin:16px 0 0;font-size:14px}.report{background:linear-gradient(135deg, var(--card) 0%, var(--card-2) 100%);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:22px 0;padding:24px}.report-title{margin:0 0 16px;font-size:22px}.report-loading{color:var(--muted);align-items:center;gap:12px;padding:10px 0;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;flex-shrink:0;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.report-head{flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:20px;display:flex}.report-score{border:5px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:baseline;width:116px;height:116px;display:flex}.report-score--good{border-color:var(--good);background:#2ecc7114}.report-score--warn{border-color:var(--warn);background:#ffb02014}.report-score--bad{border-color:var(--bad);background:#ff5c7c14}.rs-num{font-variant-numeric:tabular-nums;font-size:42px;font-weight:800}.rs-max{color:var(--muted);font-size:14px}.report-grade{flex:240px}.rg-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px;display:block}.rg-value{margin:2px 0 6px;font-size:26px;font-weight:800;display:block}.rg-good{color:var(--good)}.rg-warn{color:var(--warn)}.rg-bad{color:var(--bad)}.rg-cap{color:#c9d3ec;margin:0;font-size:14px}.report-cats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:20px;display:grid}.cat-card{border:1px solid var(--border);border-left-width:3px;border-radius:12px;flex-direction:column;gap:3px;padding:12px 14px;display:flex}.cat-good{border-left-color:var(--good)}.cat-warn{border-left-color:var(--warn)}.cat-bad{border-left-color:var(--bad)}.cat-name{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px}.cat-rating{font-size:16px;font-weight:700}.cat-good .cat-rating{color:var(--good)}.cat-warn .cat-rating{color:var(--warn)}.cat-bad .cat-rating{color:var(--bad)}.report-cols{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;display:grid}.report-col h3{margin:0 0 10px;font-size:15px}.findings{margin:0;padding:0;list-style:none}.findings li{color:#c9d3ec;align-items:flex-start;gap:8px;padding:5px 0;font-size:14px;display:flex}.findings .mark{font-weight:800}.findings li.ok .mark{color:var(--good)}.findings li.bad .mark{color:var(--bad)}.suggestions{margin:0;padding-left:18px}.suggestions li{color:#c9d3ec;margin:6px 0;font-size:14px}.report-cta{color:var(--muted);margin:18px 0 0;font-size:14px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.see-all{white-space:nowrap;font-size:14px}.report-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.report-delta{color:var(--muted);margin:14px 0 0;font-size:14px}.report-summary{margin:18px 0 0;padding:0;list-style:none}.report-summary li{color:#c9d3ec;border-bottom:1px dashed #ffffff12;padding:7px 0;font-size:14px}.report-summary li:last-child{border-bottom:0}.tool-card-wrap{position:relative}.fav-star{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px;font-size:18px;line-height:1;position:absolute;top:8px;right:10px}.fav-star:hover,.fav-star.on{color:var(--warn)}.affiliate-disclosure{color:var(--muted);font-size:13px;font-style:italic}.aff-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:14px;display:grid}.aff-card{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:16px;display:flex;position:relative}.aff-tag{color:var(--brand);background:#4f8cff26;border-radius:999px;align-self:flex-start;margin-bottom:8px;padding:3px 9px;font-size:11px;font-weight:700}.aff-card h3{margin:0 0 6px;font-size:18px}.aff-blurb{color:#c9d3ec;margin:0 0 12px;font-size:14px}.aff-specs{margin:0 0 14px;padding:0;list-style:none}.aff-specs li{border-bottom:1px dashed #ffffff12;justify-content:space-between;padding:4px 0;font-size:13px;display:flex}.aff-spec-label{color:var(--muted)}.aff-spec-value{font-weight:600}.aff-cta{text-align:center;background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;border-radius:10px;margin-top:auto;padding:10px 14px;font-size:14px;font-weight:600}.aff-cta:hover{filter:brightness(1.08);text-decoration:none}@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{color:#111827!important;background:#fff!important}.site-header,.site-footer,.ad,.ad--placeholder,.report-actions,.cta-row,.breadcrumbs,.copy-btn,.copy-icon,.fav-star,.chip-btn,.port-presets,.tool-form,.aff-cta,button,.no-print{display:none!important}.container{max-width:100%!important}.ip-hero,.report,.health,.tool,.tool-result,.card,.tool-card,.cat-card,.guide-card,.vpn-banner,.aff-card,.map-wrap,.speedtest,.callout,.toc,.health-chip,.speed-stat{color:#111827!important;box-shadow:none!important;background:#fff!important;border:1px solid #d1d5db!important}.ip-hero *,.report *,.health *,.tool *,.card *,.tool-card *,.cat-card *,.guide-card *,.vpn-banner *,.aff-card *,.content *,.faq *{color:#111827!important}.muted,.tc-desc,.gc-desc,.rg-label,.cat-name,.hc-label,.guide-meta,.speed-stat-label{color:#4b5563!important}a{text-decoration:underline;color:#2563eb!important}.gauge-num,.rs-num,.health-num,.stat-num,.grade-num{-webkit-text-fill-color:#111827!important;color:#111827!important;background:0 0!important}iframe,.map-wrap iframe{max-height:300px}}.tool-cat{margin-top:18px}.tool-cat h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:14px 0 10px;font-size:14px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.tool-card{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;transition:border-color .15s,transform 80ms;display:flex}.tool-card:hover{border-color:var(--brand);text-decoration:none;transform:translateY(-2px)}.tc-label{font-weight:700}.tc-desc{color:var(--muted);font-size:13px}.trouble-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:14px;display:grid}.trouble-card{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--brand);color:var(--text);border-radius:12px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.trouble-card:hover{border-color:var(--brand);text-decoration:none}.t-problem{font-weight:600}.t-cta{color:var(--brand);font-size:13px}.ip-hero{background:linear-gradient(135deg, var(--card) 0%, var(--card-2) 100%);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;margin:26px 0;padding:28px}.ip-hero .label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:12px}.ip-value{word-break:break-all;margin:8px 0 4px;font-family:ui-monospace,SF Mono,Fira Code,Menlo,Consolas,monospace;font-size:clamp(26px,6vw,46px);font-weight:700}.ip-row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:14px;display:flex}.chip{border:1px solid var(--border);color:var(--muted);background:#ffffff0a;border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;max-width:100%;padding:7px 14px;font-size:13px;display:inline-flex}.chip strong{color:var(--text);word-break:break-all;overflow-wrap:anywhere;min-width:0;font-family:ui-monospace,Menlo,Consolas,monospace}@media (max-width:480px){.ip-hero{padding:22px 14px}.ip-row{gap:8px}}.copy-icon{border:1px solid var(--border);width:24px;height:24px;color:var(--muted);cursor:pointer;background:#ffffff0a;border-radius:7px;flex-shrink:0;place-items:center;margin-left:2px;padding:0;transition:color .15s,border-color .15s,background .15s,transform 80ms;display:inline-grid}.copy-icon:hover{color:var(--text);border-color:var(--brand);background:#4f8cff1f}.copy-icon:active{transform:scale(.9)}.copy-icon.copied{color:var(--good);border-color:var(--good);background:#2ecc711f}.copy-btn{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;cursor:pointer;border:0;border-radius:10px;margin-top:16px;padding:10px 20px;font-size:14px;font-weight:600;transition:transform 80ms,filter .2s}.copy-btn:hover{filter:brightness(1.08)}.copy-btn:active{transform:scale(.97)}.grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:18px 0;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 18px 16px}.card h3{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 12px;font-size:13px}.kv{border-bottom:1px dashed #ffffff0f;justify-content:space-between;gap:12px;padding:6px 0;font-size:14px;display:flex}.kv:last-child{border-bottom:0}.kv .k{color:var(--muted)}.kv .v{text-align:right;word-break:break-word;font-weight:600}.vpn-banner{border-radius:var(--radius);border:1px solid var(--border);background:var(--card);align-items:center;gap:14px;margin:18px 0;padding:18px 20px;display:flex}.vpn-banner .icon{border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.vpn-banner.is-vpn .icon{background:#ff5c7c26}.vpn-banner.no-vpn .icon{background:#2ecc7126}.vpn-banner h3{margin:0;font-size:17px}.vpn-banner p{color:var(--muted);margin:2px 0 0;font-size:14px}.badge{border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700}.badge.good{color:var(--good);background:#2ecc7126}.badge.bad{color:var(--bad);background:#ff5c7c26}.map-wrap{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);background:var(--card);margin:18px 0;overflow:hidden}.map-wrap iframe{border:0;width:100%;height:360px;display:block}.map-caption{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;padding:10px 16px;font-size:13px;display:flex}.ad{text-align:center;min-height:90px;margin:22px 0}.ad__label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:10px;display:block}.ad--placeholder{border:1px dashed var(--border);border-radius:var(--radius);min-height:100px;color:var(--muted);background:repeating-linear-gradient(45deg,#ffffff05,#ffffff05 10px,#0000 10px 20px);place-items:center;font-size:13px;display:grid}.content{margin:36px 0}.content h2{letter-spacing:-.01em;margin:28px 0 10px;font-size:24px}.content h3{margin:20px 0 6px;font-size:18px}.content p,.content li{color:#c9d3ec;font-size:16px}.faq details{background:var(--card);border:1px solid var(--border);border-radius:12px;margin:10px 0;padding:14px 18px}.faq summary{cursor:pointer;font-size:16px;font-weight:600}.faq details[open] summary{margin-bottom:8px}.skeleton{vertical-align:middle;background:linear-gradient(90deg,#ffffff0f,#ffffff24,#ffffff0f) 0 0/200% 100%;border-radius:6px;width:8ch;height:1em;animation:1.2s infinite shimmer;display:inline-block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.site-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:40px;padding:28px 0;font-size:14px}.footer-cols{border-bottom:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px;padding-bottom:22px;display:grid}.footer-col h4{text-transform:uppercase;letter-spacing:.08em;color:var(--text);margin:0 0 10px;font-size:12px}.footer-col a{color:var(--muted);padding:3px 0;font-size:14px;display:block}.footer-col a:hover{color:var(--brand)}.footer-bottom{flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:18px;display:flex}.footer-bottom a{color:var(--muted)}@media (max-width:680px){.nav{display:none}}.guide-cat{margin-top:26px}.guide-cat h2{margin-bottom:12px;font-size:20px}.guide-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.guide-card{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:12px;flex-direction:column;gap:6px;padding:16px 18px;transition:border-color .15s,transform 80ms;display:flex}.guide-card:hover{border-color:var(--brand);text-decoration:none;transform:translateY(-2px)}.gc-title{font-size:16px;font-weight:700}.gc-desc{color:var(--muted);font-size:13px;line-height:1.5}.gc-meta{color:var(--brand);font-size:12px}.guide .guide-meta{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px;font-size:12px}.guide .guide-intro{color:#d6deef;font-size:17px}.guide h2{margin-top:28px}.related-block{margin-top:18px}.related-list,.link-list{flex-wrap:wrap;gap:8px 22px;margin:8px 0 0;padding:0;list-style:none;display:flex}.link-list{flex-direction:column;gap:8px}.related-list li a,.link-list li a{font-size:15px}.guide-back{margin-top:22px}.toc{background:var(--card);border:1px solid var(--border);border-radius:12px;margin:18px 0;padding:14px 18px}.toc-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px}.toc ul{margin:8px 0 0;padding-left:18px}.toc li{margin:4px 0;font-size:15px}.guide-steps{counter-reset:step;margin:14px 0;padding-left:0;list-style:none}.guide-steps li{color:#c9d3ec;border-bottom:1px dashed #ffffff12;margin:0;padding:8px 0 8px 42px;position:relative}.guide-steps li:last-child{border-bottom:0}.guide-steps li:before{counter-increment:step;content:counter(step);background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid;position:absolute;top:7px;left:0}.legal .updated{margin-top:-6px;font-size:13px}.legal h2{margin-top:26px}.tool{background:linear-gradient(135deg, var(--card) 0%, var(--card-2) 100%);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:22px 0;padding:22px}.tool-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tool-form input[type=text]{background:var(--bg-soft);border:1px solid var(--border);min-width:0;color:var(--text);border-radius:10px;flex:220px;padding:12px 14px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px}.tool-form input:focus,.tool-form select:focus{border-color:var(--brand);outline:none}.tool-form select{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:12px;font-size:15px}.tool-form .slash{color:var(--muted);font-size:20px;font-weight:700}.tool-form button{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;cursor:pointer;border:0;border-radius:10px;padding:12px 22px;font-size:15px;font-weight:600}.tool-form button:disabled{opacity:.6;cursor:not-allowed}.tool-result{margin-top:18px}.result-table{border-collapse:collapse;width:100%;font-size:14px}.result-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px}.result-table td{vertical-align:top;border-bottom:1px dashed #ffffff12;padding:9px 10px}.result-table td:first-child{color:var(--muted);white-space:nowrap}.result-table .mono{color:var(--text);word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace}.record{background:var(--bg-soft);border:1px solid var(--border);white-space:pre-wrap;word-break:break-all;color:var(--text);border-radius:8px;margin:8px 0 0;padding:12px 14px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}.ua-box{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.ua-box code{word-break:break-all;color:var(--text);flex:240px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}.ua-box .copy-btn{margin-top:0;padding:8px 16px;font-size:13px}.privacy-score{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.ps-ring{border:5px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:baseline;width:116px;height:116px;display:flex}.ps-good{border-color:var(--good);background:#2ecc7114}.ps-warn{border-color:var(--warn);background:#ffb02014}.ps-bad{border-color:var(--bad);background:#ff5c7c14}.ps-num{font-variant-numeric:tabular-nums;font-size:40px;font-weight:800}.ps-max{color:var(--muted);font-size:14px}.ps-meta{flex:260px}.ps-meta h3{margin:0 0 4px;font-size:18px}.ps-checklist{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 16px;margin:12px 0 0;padding:0;list-style:none;display:grid}.ps-checklist li{color:#c9d3ec;align-items:flex-start;gap:8px;padding:3px 0;font-size:14px;display:flex}.ps-checklist .mark{font-weight:800}.ps-checklist li.ok .mark{color:var(--good)}.ps-checklist li.warn .mark{color:var(--warn)}.ping-bars{align-items:flex-end;gap:2px;height:90px;margin:20px 0 4px;display:flex}.ping-bar{background:linear-gradient(180deg, var(--brand), var(--brand-2));border-radius:2px 2px 0 0;flex:1;min-width:3px}.port-presets{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chip-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#ffffff0a;border-radius:999px;padding:6px 13px;font-size:13px}.chip-btn:hover{border-color:var(--brand);color:var(--text)}.chip-btn:disabled{opacity:.5;cursor:not-allowed}.grade-line{color:var(--muted);align-items:baseline;gap:10px;margin-bottom:12px;font-size:14px;display:flex}.grade-num{color:var(--text);font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}.ok-mark{color:var(--good);font-weight:800}.bad-mark{color:var(--bad);font-weight:800}.muted-cell{color:var(--muted);font-size:13px}.callout{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--brand);color:#c9d3ec;border-radius:12px;margin:18px 0;padding:14px 18px;font-size:15px}.simple-table{border-collapse:collapse;width:100%;margin:14px 0;font-size:15px}.simple-table th,.simple-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.simple-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px}.simple-table code{background:#ffffff0d;border-radius:5px;padding:2px 6px}.speedtest{background:linear-gradient(135deg, var(--card) 0%, var(--card-2) 100%);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;margin:26px 0;padding:32px 24px}.gauge{flex-direction:column;align-items:center;gap:0;display:flex}.gauge-num{letter-spacing:-.03em;font-variant-numeric:tabular-nums;background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#0000;-webkit-background-clip:text;background-clip:text;min-height:1em;font-size:clamp(56px,14vw,92px);font-weight:800;line-height:1}.gauge-num .skeleton{width:3ch;height:.7em}.gauge-unit{color:var(--muted);margin-top:4px;font-size:18px}.gauge-phase{color:var(--muted);min-height:20px;margin-top:10px;font-size:14px}.speedtest-btn{margin-top:20px}.speed-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px;display:grid}.speed-stat{border:1px solid var(--border);background:#ffffff08;border-radius:12px;padding:14px 8px;transition:border-color .2s,background .2s}.speed-stat.active{border-color:var(--brand);background:#4f8cff14}.speed-stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px}.speed-stat-val{font-variant-numeric:tabular-nums;margin-top:4px;font-size:24px;font-weight:700}.speed-stat-unit{color:var(--muted);margin-left:4px;font-size:12px;font-weight:500}.speed-note{color:var(--muted);margin:18px 0 0;font-size:12px}@media (max-width:520px){.speed-grid{grid-template-columns:repeat(2,1fr)}}.admin-page{padding-top:32px;padding-bottom:60px}.muted{color:var(--muted)}.err{color:var(--bad);margin-top:12px;font-size:14px}.admin-login{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;max-width:380px;margin:60px auto;padding:28px}.admin-login h1{margin:0 0 6px;font-size:24px}.admin-login form{flex-direction:column;gap:10px;margin-top:18px;display:flex}.admin-login input,.admin-actions select{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:11px 14px;font-size:15px}.admin-login button,.admin-actions button{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;cursor:pointer;border:0;border-radius:10px;padding:11px 16px;font-weight:600}.admin-actions button.ghost,button.ghost{background:var(--card-2);border:1px solid var(--border);color:var(--text)}.admin-login button:disabled{opacity:.6;cursor:not-allowed}button.ghost.danger{color:var(--bad);border-color:#ff5c7c66}button.ghost.danger:hover{border-color:var(--bad);background:#ff5c7c1f}.admin-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.admin-top h1{margin:0;font-size:26px}.admin-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-actions select{border-radius:10px;padding:9px 12px}.notice{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.notice h3{margin:0 0 8px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px;display:grid}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;position:relative;overflow:hidden}.stat:before{content:"";width:4px;height:100%;position:absolute;top:0;left:0}.stat--brand:before{background:var(--brand)}.stat--violet:before{background:var(--brand-2)}.stat--green:before{background:var(--good)}.stat--amber:before{background:var(--warn)}.stat-num{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:800}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-size:13px}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:20px}.panel h3{margin:0 0 14px;font-size:16px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.legend{color:var(--muted);gap:14px;font-size:13px;display:flex}.legend .sw{vertical-align:middle;border-radius:3px;width:11px;height:11px;margin-right:5px;display:inline-block}.sw.views{background:var(--brand)}.sw.uniq{background:var(--brand-2)}.chart{align-items:flex-end;gap:4px;height:220px;margin-top:14px;padding-bottom:4px;display:flex;overflow-x:auto}.bar-col{flex-direction:column;flex:1 0 14px;justify-content:flex-end;align-items:center;min-width:14px;height:100%;display:flex}.bar-stack{justify-content:center;align-items:flex-end;width:70%;height:100%;display:flex;position:relative}.bar{border-radius:4px 4px 0 0;transition:height .3s;position:absolute;bottom:0}.bar.views{background:linear-gradient(180deg, var(--brand), #4f8cff66);width:100%}.bar.uniq{background:var(--brand-2);opacity:.95;width:55%}.bar-label{color:var(--muted);white-space:nowrap;transform-origin:50%;margin-top:5px;font-size:9px;transform:rotate(-45deg)}.ctable{border-collapse:collapse;width:100%}.ctable td{border-bottom:1px dashed #ffffff0f;padding:7px 6px;font-size:14px}.cflag{width:28px;font-size:18px}.ccode{width:40px;color:var(--muted);font-weight:600}.cbarcell{width:100%}.cbar{background:linear-gradient(90deg, var(--brand), var(--brand-2));border-radius:5px;min-width:4px;height:9px;display:block}.cnum{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.ptable th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:4px 6px;font-size:11px;font-weight:600}.ptable th.cnum{text-align:right}.ppath{width:100%;position:relative}.ppath .cbar{opacity:.18;z-index:0;border-radius:5px;height:22px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.ppath code{z-index:1;color:var(--text);word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;position:relative}
