:root{
    --ink:#132033;--ink-2:#24364d;--muted:#63748a;--paper:#f5f7fa;--white:#fff;
    --red:#db1f2a;--red-dark:#b8131d;--navy:#081624;--navy-2:#10283d;--blue:#1d79b9;
    --line:#dbe2e9;--soft:#edf2f6;--green:#167c52;--green-bg:#e6f6ef;--amber:#9b6500;--amber-bg:#fff4d8;--danger:#b42318;--danger-bg:#ffefed;
    --shadow:0 18px 55px rgba(24,42,64,.10);--radius:18px;--wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 "Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
button,input,select{font:inherit}.wrap{width:min(var(--wrap),calc(100% - 36px));margin:auto}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:-60px;z-index:100;background:#fff;padding:10px 14px;border-radius:8px;color:#000}.skip-link:focus{top:12px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(8,22,36,.96);border-bottom:1px solid rgba(255,255,255,.11);backdrop-filter:blur(12px)}.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:12px;color:#fff}.brand:hover{text-decoration:none}.brand-mark{display:inline-grid;place-items:center;width:50px;height:50px;border-radius:13px;background:linear-gradient(145deg,#f22a35,var(--red-dark));box-shadow:0 10px 26px rgba(219,31,42,.28);font-weight:900;letter-spacing:-.06em;color:#fff}.brand-mark.small{width:42px;height:42px;border-radius:11px}.brand-copy{display:flex;flex-direction:column;line-height:1.25}.brand-copy strong{font-size:17px}.brand-copy small{color:#9eb0c2;font-size:11px;margin-top:4px;letter-spacing:.02em}.main-nav{display:flex;align-items:center;gap:28px}.main-nav a{color:#dbe6ef;font-weight:700;font-size:14px}.main-nav a:hover{color:#fff;text-decoration:none}.menu-toggle{display:none;color:#fff;background:transparent;border:1px solid #405366;padding:8px 12px;border-radius:9px}
.hero{background:linear-gradient(115deg,var(--navy) 0%,#0c2236 62%,#14364f 100%);color:#fff;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;width:620px;height:620px;border:1px solid rgba(255,255,255,.06);border-radius:50%;right:-270px;top:-330px;box-shadow:0 0 0 90px rgba(255,255,255,.018),0 0 0 180px rgba(255,255,255,.012)}.home-hero{padding:82px 0 76px}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:62px;position:relative}.eyebrow{margin:0 0 10px;color:var(--red);font-size:12px;line-height:1.4;font-weight:900;letter-spacing:.16em}.hero .eyebrow{color:#ff777e}.hero h1{font-size:clamp(45px,6vw,76px);line-height:.98;letter-spacing:-.045em;margin:0 0 23px;max-width:700px}.hero-copy{font-size:20px;color:#c4d1dc;max-width:700px;margin:0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;border:0;border-radius:11px;padding:13px 20px;font-weight:800;cursor:pointer;transition:.18s ease;line-height:1.2}.button:hover{text-decoration:none;transform:translateY(-1px)}.button.primary{background:linear-gradient(135deg,#f02732,var(--red-dark));color:#fff;box-shadow:0 10px 28px rgba(219,31,42,.22)}.button.secondary{background:#17334a;color:#fff;border:1px solid #385269}.button.light{background:#fff;color:var(--navy)}.button:disabled{opacity:.65;cursor:not-allowed;transform:none}.trust-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:29px;color:#9fb4c6;font-size:13px}.trust-row span:before{content:"✓";color:#6cdaa8;margin-right:6px;font-weight:900}.hero-console{position:relative;background:#06111d;border:1px solid #294155;border-radius:18px;box-shadow:0 35px 80px rgba(0,0,0,.38);overflow:hidden;transform:rotate(1deg)}.console-bar{height:46px;background:#102438;border-bottom:1px solid #283f53;display:flex;align-items:center;gap:7px;padding:0 15px}.console-bar i{width:10px;height:10px;border-radius:50%;background:#f45b62}.console-bar i:nth-child(2){background:#e5b84a}.console-bar i:nth-child(3){background:#4fc08c}.console-bar span{margin-left:9px;color:#7f97aa;font:12px Consolas,monospace}.hero-console pre{margin:0;padding:30px;min-height:300px;color:#cce4ee;background:transparent;border:0;font:14px/1.75 Consolas,Monaco,monospace;white-space:pre-wrap}
.tool-finder{padding:72px 0 52px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:38px}.section-heading h2{font-size:38px;letter-spacing:-.025em;margin:0}.search-tools input{width:min(360px,100%);padding:13px 16px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);outline:none;box-shadow:0 4px 18px rgba(23,42,64,.04)}.search-tools input:focus{border-color:#6e9bbd;box-shadow:0 0 0 4px rgba(29,121,185,.10)}.tool-category{margin:0 0 42px}.tool-category>h3{font-size:13px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin:0 0 14px}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.tool-card{min-height:118px;display:flex;align-items:center;gap:14px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:15px;color:var(--ink);box-shadow:0 7px 25px rgba(24,42,64,.035);transition:.18s ease}.tool-card:hover{border-color:#adc1d2;box-shadow:var(--shadow);transform:translateY(-2px);text-decoration:none}.tool-icon{display:grid;place-items:center;flex:0 0 43px;height:43px;background:#fff0f1;color:var(--red);border-radius:10px;font-size:12px;font-weight:900;letter-spacing:.03em}.tool-card-copy{display:flex;flex-direction:column;line-height:1.35}.tool-card-copy strong{font-size:16px}.tool-card-copy small{margin-top:6px;color:var(--muted);font-size:13px}.tool-arrow{margin-left:auto;color:#8294a6;font-size:20px}.expertise-band{background:#e8edf2;border-block:1px solid #d7dfe7;padding:47px 0}.expertise-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;align-items:center}.expertise-grid h2{font-size:31px;line-height:1.15;margin:0}.expertise-grid p{margin:0;color:var(--ink-2)}.content-section{padding:70px 0}.prose-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}.prose-grid h2{font-size:28px;line-height:1.2;margin-top:0}.prose-grid p{color:var(--ink-2)}
.breadcrumbs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:26px 0 0;color:var(--muted);font-size:13px}.breadcrumbs a{color:var(--ink-2)}.tool-hero{display:flex;justify-content:space-between;align-items:center;gap:40px;padding:55px 0 34px}.tool-hero h1{font-size:clamp(38px,5vw,60px);line-height:1;letter-spacing:-.04em;margin:0 0 18px}.tool-hero>div:first-child>p:last-child{font-size:18px;color:var(--muted);max-width:760px;margin:0}.tool-hero-badge{flex:0 0 190px;background:var(--navy);color:#fff;padding:20px;border-radius:15px;box-shadow:0 18px 45px rgba(8,22,36,.19);display:grid;grid-template-columns:44px 1fr;column-gap:12px;align-items:center}.tool-hero-badge>span{grid-row:1/3;display:grid;place-items:center;background:var(--red);width:44px;height:44px;border-radius:10px;font-weight:900}.tool-hero-badge strong{font-size:13px}.tool-hero-badge small{color:#9db0bf;font-size:11px}.tool-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;align-items:start}.test-panel,.result-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:25px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid var(--soft);padding-bottom:18px;margin-bottom:22px}.panel-heading h2{margin:0;font-size:23px;line-height:1.2}.panel-heading .eyebrow{margin-bottom:4px}.secure-pill{background:var(--green-bg);color:var(--green);border-radius:50px;padding:6px 10px;font-size:11px;font-weight:800}.field-grid{display:grid;gap:16px}.form-field{display:grid;gap:7px;font-weight:800;font-size:14px}.form-field input,.form-field select{width:100%;background:#f8fafc;color:var(--ink);border:1px solid #cbd6df;border-radius:11px;padding:13px 14px;outline:none}.form-field input:focus,.form-field select:focus{background:#fff;border-color:#6b9abb;box-shadow:0 0 0 4px rgba(29,121,185,.10)}.form-field small,.form-note{font-size:12px;color:var(--muted);font-weight:400}.form-note{background:#f4f7f9;border-radius:9px;padding:11px 13px}.form-note code{font-family:Consolas,monospace}.run-button{width:100%;margin-top:20px;min-height:50px}.run-button i{font-style:normal;font-size:18px}.run-button.loading span:after{content:" …"}.copy-button{border:1px solid #cbd6df;background:#f7f9fb;color:var(--ink);border-radius:9px;padding:8px 12px;font-weight:800;cursor:pointer}.copy-button:disabled{opacity:.45;cursor:not-allowed}.result-status{padding:11px 13px;border-radius:9px;background:var(--soft);color:var(--muted);font-size:13px;margin-bottom:14px}.result-status.running{background:var(--amber-bg);color:var(--amber)}.result-status.success{background:var(--green-bg);color:var(--green)}.result-status.error{background:var(--danger-bg);color:var(--danger)}.result-panel pre{min-height:355px;max-height:610px;overflow:auto;margin:0;background:#07131f;color:#d5e8f0;border-radius:12px;padding:18px;white-space:pre-wrap;word-break:break-word;font:12.5px/1.62 Consolas,Monaco,monospace}.result-visual{margin-bottom:14px;border:1px solid var(--line);border-radius:12px;padding:13px;background:#fafcfd}.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:10px}.metric-row>div{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px}.metric-row span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.metric-row strong{display:block;margin-top:4px;font-size:14px}.line-chart{display:block;width:100%;height:auto;overflow:visible}.line-chart .axis{stroke:#c6d1da;stroke-width:1}.line-chart text{font-size:10px;fill:#697c8d}.chart-line{fill:none;stroke:var(--red);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.line-chart circle{fill:#fff;stroke:var(--red);stroke-width:2}.port-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.port-state{border-radius:9px;padding:10px;display:grid}.port-state.open{background:var(--green-bg);color:var(--green)}.port-state.closed{background:var(--danger-bg);color:var(--danger)}.port-state span,.port-state small{font-size:11px}.header-score{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.header-state{display:flex;gap:8px;align-items:center;padding:9px;border-radius:8px;font-size:11px}.header-state.present{background:var(--green-bg);color:var(--green)}.header-state.missing{background:var(--danger-bg);color:var(--danger)}.header-state span{font-size:17px;font-weight:900}
.tool-content{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:56px;align-items:start}.article-main h2{font-size:28px;line-height:1.2;margin:42px 0 15px;letter-spacing:-.018em}.article-main>.eyebrow+h2{margin-top:0}.article-main p{color:var(--ink-2)}.steps{list-style:none;padding:0;margin:20px 0;counter-reset:steps}.steps li{counter-increment:steps;display:grid;grid-template-columns:44px 1fr;column-gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.steps li:before{content:counter(steps);grid-row:1/3;display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#fff0f1;color:var(--red);font-weight:900}.steps strong,.steps span{display:block}.steps span{color:var(--muted);font-size:14px;margin-top:3px}.issue-list{padding:0;list-style:none}.issue-list li{position:relative;padding:10px 0 10px 28px;border-bottom:1px solid var(--line);color:var(--ink-2)}.issue-list li:before{content:"!";position:absolute;left:0;top:11px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--amber-bg);color:var(--amber);font-size:11px;font-weight:900}.service-cta{margin:45px 0;padding:30px;border-radius:17px;background:linear-gradient(130deg,var(--navy),#153852);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:25px}.service-cta h2{color:#fff;margin:0 0 10px;font-size:24px}.service-cta p{color:#b9cbd8;margin:0}.service-cta .eyebrow{color:#ff787f;margin-bottom:7px}.faq-list details{background:#fff;border:1px solid var(--line);border-radius:11px;margin:10px 0;padding:0 17px}.faq-list summary{cursor:pointer;font-weight:800;padding:16px 0}.faq-list p{margin:0 0 18px}.article-aside{position:sticky;top:100px}.aside-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:14px}.aside-card h2{font-size:18px;margin:0 0 12px}.aside-card>a{display:flex;flex-direction:column;padding:12px 0;border-top:1px solid var(--line);color:var(--ink)}.aside-card>a:hover{text-decoration:none;color:var(--blue)}.aside-card>a span{font-size:12px;color:var(--muted);margin-top:3px}.aside-card.subtle{background:#edf2f5}.aside-card.subtle p{font-size:13px;color:var(--ink-2)}.aside-card.subtle>a{display:inline;color:var(--blue);border:0;padding:0}.error-page{padding:100px 0;min-height:500px}.error-page h1{font-size:52px;margin:0}.error-page p{color:var(--muted);font-size:18px}
.site-footer{background:var(--navy);color:#c5d3dd;padding:58px 0 0;margin-top:25px}.footer-grid{display:grid;grid-template-columns:1.05fr 1.45fr .75fr;gap:56px}.footer-intro h2{color:#fff;font-size:21px;margin:13px 0 8px}.footer-intro p{color:#93aabd;font-size:14px}.site-footer h3{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 14px}.footer-links,.footer-simple{list-style:none;margin:0;padding:0}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:7px 18px}.footer-links a{display:flex;flex-direction:column;padding:7px 0;color:#fff}.footer-links a:hover{text-decoration:none}.footer-links span{color:#8fa6b8;font-size:11px;margin-top:2px}.footer-simple li{margin:8px 0}.footer-simple a{color:#b7c9d5;font-size:13px}.footer-bottom{display:flex;justify-content:space-between;gap:30px;margin-top:40px;padding:20px 0;border-top:1px solid #263b4e;color:#8298aa;font-size:11px}.footer-bottom p{margin:0}
.info-page{padding:55px 0 80px;display:grid;grid-template-columns:minmax(0,760px) 280px;gap:70px}.info-page h1{font-size:48px;line-height:1.05;letter-spacing:-.035em}.info-page h2{font-size:26px;margin-top:38px}.info-page p,.info-page li{color:var(--ink-2)}.info-aside{background:#fff;border:1px solid var(--line);padding:20px;border-radius:14px;align-self:start;position:sticky;top:100px}.info-aside h2{font-size:17px;margin-top:0}.info-aside a{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
@media(max-width:1000px){.hero-grid{grid-template-columns:1fr}.hero-console{max-width:680px}.tool-grid{grid-template-columns:repeat(2,1fr)}.tool-layout{grid-template-columns:1fr}.tool-content{grid-template-columns:1fr}.article-aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:14px}.footer-grid{grid-template-columns:1fr 1fr}.footer-intro{grid-column:1/-1}.info-page{grid-template-columns:1fr}.info-aside{position:static}}
@media(max-width:700px){.wrap{width:min(100% - 24px,var(--wrap))}.header-inner{min-height:68px}.brand-mark{width:43px;height:43px}.brand-copy small{display:none}.menu-toggle{display:block}.main-nav{display:none;position:absolute;left:12px;right:12px;top:68px;background:#10263a;border:1px solid #334b5e;border-radius:12px;padding:12px;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 15px 40px rgba(0,0,0,.28)}.main-nav.open{display:flex}.main-nav a{padding:11px}.home-hero{padding:57px 0}.hero h1{font-size:47px}.hero-copy{font-size:17px}.hero-console pre{min-height:250px;padding:22px;font-size:12px}.section-heading{align-items:stretch;flex-direction:column}.search-tools input{width:100%}.tool-grid{grid-template-columns:1fr}.expertise-grid,.prose-grid{grid-template-columns:1fr;gap:24px}.tool-hero{align-items:flex-start;flex-direction:column}.tool-hero-badge{display:none}.test-panel,.result-panel{padding:18px}.metric-row{grid-template-columns:1fr 1fr}.port-grid{grid-template-columns:1fr 1fr}.header-score{grid-template-columns:1fr}.tool-content{gap:30px}.article-aside{grid-template-columns:1fr}.service-cta{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr;gap:32px}.footer-intro{grid-column:auto}.footer-links{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.info-page h1{font-size:40px}}

/* --------------------------------------------------------------------------
   Accessible link colours and resilient link states
   -------------------------------------------------------------------------- */
:root{
    --link:#a9141d;
    --link-hover:#7d0d14;
    --link-on-dark:#f7fafc;
    --link-on-dark-muted:#c8d7e2;
}

a,
a:visited{
    color:var(--link);
    text-decoration-color:rgba(169,20,29,.42);
    text-underline-offset:.18em;
}
a:hover,
a:focus-visible{
    color:var(--link-hover);
    text-decoration-thickness:2px;
}
a:focus-visible{
    outline:3px solid rgba(219,31,42,.28);
    outline-offset:3px;
    border-radius:4px;
}

/* Cards and controls keep their intended colours after a link is visited. */
a.button,
a.button:visited{color:#fff}
a.button.light,
a.button.light:visited{color:var(--navy)}
a.tool-card,
a.tool-card:visited{color:var(--ink)}
.breadcrumbs a,
.breadcrumbs a:visited{color:var(--ink-2)}
.aside-card>a,
.aside-card>a:visited{color:var(--ink)}
.aside-card.subtle>a,
.aside-card.subtle>a:visited{color:var(--link)}
.info-aside a,
.info-aside a:visited{color:var(--link)}

/* Explicit high-contrast colours for every dark-background section. */
.site-header a,
.site-header a:visited,
.hero a,
.hero a:visited,
.service-cta a,
.service-cta a:visited,
.site-footer a,
.site-footer a:visited{
    color:var(--link-on-dark);
}
.site-header a:hover,
.site-header a:focus-visible,
.hero a:hover,
.hero a:focus-visible,
.service-cta a:hover,
.service-cta a:focus-visible,
.site-footer a:hover,
.site-footer a:focus-visible{
    color:#fff;
}
.site-header .main-nav a,
.site-header .main-nav a:visited{color:#dbe6ef}
.site-header .main-nav a:hover,
.site-header .main-nav a:focus-visible{color:#fff}

/* Button variants need to override the dark-section link rules above. */
.hero a.button.primary,
.hero a.button.primary:visited,
.service-cta a.button.primary,
.service-cta a.button.primary:visited{color:#fff}
.hero a.button.secondary,
.hero a.button.secondary:visited{color:#fff}
.hero a.button.light,
.hero a.button.light:visited,
.service-cta a.button.light,
.service-cta a.button.light:visited{color:var(--navy)}

/* Branded inline links on pale backgrounds remain easy to identify. */
.expertise-band a,
.expertise-band a:visited,
.article-main a,
.article-main a:visited,
.home-content a,
.home-content a:visited{
    color:var(--link);
    font-weight:700;
    text-decoration:underline;
    text-decoration-color:rgba(169,20,29,.34);
}
.expertise-band a:hover,
.article-main a:hover,
.home-content a:hover{color:var(--link-hover)}

/* Footer contrast, including previously visited external brand links. */
.footer-links a,
.footer-links a:visited{color:#fff}
.footer-links span{color:#b2c4d1}
.footer-simple a,
.footer-simple a:visited{color:#d5e1e9}
.footer-links a:hover strong,
.footer-simple a:hover{color:#fff}

/* Friendly formatted network results */
.result-content{min-height:220px;color:var(--ink);font-size:14px;line-height:1.55}.result-content h3,.result-content h4{margin:0 0 12px;color:var(--ink)}.result-content h3{font-size:17px}.result-content h4{font-size:14px}.empty-result{margin:0;padding:20px;border:1px dashed #c7d3dc;border-radius:10px;background:#f8fafc;color:var(--muted);text-align:center}.empty-value{color:var(--muted);font-style:italic}.result-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin-bottom:14px}.result-summary-card{display:grid;align-content:start;gap:4px;min-height:82px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.result-summary-card>span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.result-summary-card strong{font-size:16px;line-height:1.25;overflow-wrap:anywhere}.result-summary-card small{font-size:11px;color:var(--muted)}.result-summary-card.good{background:var(--green-bg);border-color:#bbdfcc;color:var(--green)}.result-summary-card.warning{background:var(--amber-bg);border-color:#ead7aa;color:var(--amber)}.result-summary-card.bad{background:var(--danger-bg);border-color:#efc0c0;color:var(--danger)}.result-alert{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:#f4f7f9}.result-alert>span{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;font-weight:900}.result-alert p{margin:1px 0 0}.result-alert.good{background:var(--green-bg);border-color:#bbdfcc;color:var(--green)}.result-alert.good>span{background:#fff}.result-alert.warning{background:var(--amber-bg);border-color:#ead7aa;color:var(--amber)}.result-alert.warning>span{background:#fff}.result-alert.bad{background:var(--danger-bg);border-color:#efc0c0;color:var(--danger)}.result-alert.bad>span{background:#fff}.result-alert.info{color:#30566f}.result-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.result-kv>div{padding:11px 12px;border-bottom:1px solid var(--line)}.result-kv>div:nth-last-child(-n+2){border-bottom:0}.result-kv>div:nth-child(odd){border-right:1px solid var(--line)}.result-kv dt{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.result-kv dd{margin:4px 0 0;font-weight:700;overflow-wrap:anywhere}.result-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:30px;font-size:11px;font-weight:900}.result-badge.good{background:var(--green-bg);color:var(--green)}.result-badge.bad{background:var(--danger-bg);color:var(--danger)}.result-subsection{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fafcfd}.result-subsection>.result-subsection{background:#fff}.result-stack{display:grid;gap:10px}.result-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.result-table{width:100%;border-collapse:collapse;font-size:12px}.result-table th{position:sticky;top:0;padding:9px 10px;background:#eef3f6;color:#425768;text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.result-table td{padding:10px;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;max-width:360px}.result-table tr:nth-child(even) td{background:#fafcfd}.result-list{display:grid;gap:7px;margin:0;padding:0;list-style:none}.result-list li{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow-wrap:anywhere}.terminal-result{overflow:hidden;border-radius:11px;background:#07131f;color:#d5e8f0}.terminal-result .terminal-title{display:flex;align-items:center;gap:6px;padding:9px 12px;background:#10263a}.terminal-result .terminal-title>span{width:9px;height:9px;border-radius:50%;background:#708391}.terminal-result .terminal-title>span:first-child{background:#e36262}.terminal-result .terminal-title>span:nth-child(2){background:#dbad4e}.terminal-result .terminal-title>span:nth-child(3){background:#4cab72}.terminal-result .terminal-title strong{margin-left:5px;font-size:11px;color:#d5e8f0}.terminal-result pre,.raw-result-details pre{max-height:520px;overflow:auto;margin:0;padding:16px;white-space:pre-wrap;word-break:break-word;font:12.5px/1.62 Consolas,Monaco,monospace}.terminal-result.compact pre{max-height:310px}.resolver-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.resolver-card{padding:13px;border:1px solid var(--line);border-radius:10px;background:#fafcfd}.resolver-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.resolver-heading h3{margin:0}.resolver-heading span{font:11px Consolas,monospace;color:var(--muted)}.result-details,.raw-result-details{margin-top:14px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.result-details summary,.raw-result-details summary{cursor:pointer;padding:11px 13px;background:#f3f6f8;font-weight:800;color:var(--ink)}.result-details[open] summary,.raw-result-details[open] summary{border-bottom:1px solid var(--line)}.result-details>*:not(summary){margin:12px}.raw-result-details pre{margin:0;background:#07131f;color:#d5e8f0;border-radius:0}.code-value{margin:0;padding:11px;border-radius:8px;background:#07131f;color:#d5e8f0;font:12px/1.55 Consolas,monospace;overflow-wrap:anywhere}.result-loading{display:grid;place-items:center;gap:12px;min-height:190px;text-align:center;color:var(--muted)}.result-loading span{width:34px;height:34px;border:4px solid #d7e0e6;border-top-color:var(--red);border-radius:50%;animation:toolbox-spin .8s linear infinite}.result-loading p{margin:0}@keyframes toolbox-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.result-kv{grid-template-columns:1fr}.result-kv>div,.result-kv>div:nth-child(odd),.result-kv>div:nth-last-child(-n+2){border-right:0;border-bottom:1px solid var(--line)}.result-kv>div:last-child{border-bottom:0}.resolver-grid{grid-template-columns:1fr}.result-table th,.result-table td{padding:8px}.result-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.result-summary-grid{grid-template-columns:1fr}}
.result-panel .terminal-result pre,.result-panel .raw-result-details pre{min-height:0;border-radius:0}.result-panel .terminal-result.compact pre{min-height:0}

/* Browser-to-node speed test */
.speed-progress{display:grid;gap:13px;min-height:190px;align-content:center;padding:22px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.speed-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.speed-progress-heading span{font-weight:900;color:var(--ink)}.speed-progress-heading strong{color:var(--red);font-size:18px}.speed-progress-track{height:12px;border-radius:999px;background:#dce5eb;overflow:hidden}.speed-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--red),#ff6870);transition:width .2s ease}.speed-progress p{margin:0;color:var(--muted)}.speed-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:14px}.speed-result-card{position:relative;overflow:hidden;min-height:135px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#f7fafc}.speed-result-card:after{content:"";position:absolute;width:90px;height:90px;border:15px solid rgba(11,37,57,.035);border-radius:50%;right:-34px;bottom:-38px}.speed-result-card.featured{background:linear-gradient(145deg,var(--navy),#173e5c);border-color:#173e5c;color:#fff}.speed-result-card>span{display:block;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.speed-result-card.featured>span{color:#a9c0d1}.speed-result-card strong{display:block;margin:13px 0 5px;font-size:31px;letter-spacing:-.035em;line-height:1}.speed-result-card strong small{font-size:13px;letter-spacing:0}.speed-result-card p{position:relative;z-index:1;margin:0;color:var(--muted);font-size:11px}.speed-result-card.featured p{color:#c1d3df}@media(max-width:700px){.speed-result-grid{grid-template-columns:1fr}.speed-result-card{min-height:112px}}

/* ========================================================================== 
   39D admin control centre and installer
   ========================================================================== */
.admin-body{--admin-sidebar:276px;margin:0;background:#eef2f6;color:#18283a;min-height:100vh;font-size:15px}
.admin-body a{color:inherit}
.admin-app{min-height:100vh;display:grid;grid-template-columns:var(--admin-sidebar) minmax(0,1fr)}
.admin-sidebar{position:sticky;top:0;height:100vh;z-index:50;display:flex;flex-direction:column;background:linear-gradient(180deg,#071521 0%,#0a2032 58%,#0d2940 100%);color:#dce8f0;box-shadow:12px 0 36px rgba(7,21,33,.12);overflow-y:auto}
.admin-sidebar-brand{padding:24px 21px 20px;border-bottom:1px solid rgba(255,255,255,.09)}
.admin-sidebar .brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}
.admin-sidebar .brand-mark{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#f22c38,#b80e18);box-shadow:0 10px 24px rgba(219,31,42,.28);font-size:18px;font-weight:900;letter-spacing:-.04em;color:#fff}
.admin-sidebar .brand-copy{display:grid;line-height:1.2;min-width:0}
.admin-sidebar .brand-copy strong{font-size:16px;white-space:nowrap}
.admin-sidebar .brand-copy small{margin-top:4px;color:#8eabc0;font-size:11px;text-transform:uppercase;letter-spacing:.11em}
.admin-side-nav{display:grid;gap:4px;padding:18px 13px;flex:1}
.admin-nav-label{margin:15px 11px 5px;color:#6f8da3;font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.admin-nav-label:first-child{margin-top:0}
.admin-side-nav a,.admin-sidebar-footer>a{position:relative;display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 13px;border-radius:11px;color:#b9cedd;font-weight:750;text-decoration:none;transition:background .16s ease,color .16s ease,transform .16s ease}
.admin-side-nav a:hover,.admin-sidebar-footer>a:hover{background:rgba(255,255,255,.075);color:#fff;text-decoration:none;transform:translateX(2px)}
.admin-side-nav a.active{background:linear-gradient(100deg,rgba(219,31,42,.95),rgba(178,17,27,.88));color:#fff;box-shadow:0 10px 25px rgba(123,8,15,.2)}
.admin-side-nav a.active:after{content:"";position:absolute;right:-13px;top:11px;width:4px;height:24px;border-radius:4px 0 0 4px;background:#ff8087}
.admin-nav-icon{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.065);font-size:16px;font-weight:900;line-height:1}
.admin-side-nav a.active .admin-nav-icon{background:rgba(255,255,255,.17)}
.admin-sidebar-footer{display:grid;gap:4px;padding:13px;border-top:1px solid rgba(255,255,255,.09)}
.admin-sidebar-site{display:grid;gap:2px;margin:11px 7px 3px;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(0,0,0,.12)}
.admin-sidebar-site small{color:#7795aa;font-size:10px;text-transform:uppercase;letter-spacing:.11em}
.admin-sidebar-site strong{color:#e9f2f7;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.admin-workspace{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.admin-topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;min-height:76px;padding:12px clamp(18px,3vw,38px);border-bottom:1px solid #dce3e9;background:rgba(255,255,255,.92);backdrop-filter:blur(15px);box-shadow:0 4px 18px rgba(25,44,65,.045)}
.admin-topbar-title{display:grid;line-height:1.2;min-width:0}
.admin-topbar-title small{color:#738398;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.admin-topbar-title strong{margin-top:3px;color:#152538;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-user-chip{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0;padding:6px 10px 6px 6px;border:1px solid #dce3e9;border-radius:13px;background:#f8fafc}
.admin-user-chip>span{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:#10283d;color:#fff;font-size:14px;font-weight:900}
.admin-user-chip>div{display:grid;line-height:1.25;min-width:0}
.admin-user-chip strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-user-chip small{max-width:220px;color:#75859a;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-menu-toggle{display:none;width:42px;height:42px;padding:9px;border:1px solid #d9e1e7;border-radius:11px;background:#fff;cursor:pointer}
.admin-menu-toggle span:not(.sr-only){display:block;height:2px;margin:4px 0;border-radius:3px;background:#183048}
.admin-main{flex:1;min-width:0}
.admin-content{width:min(1420px,100%);margin:0 auto;padding:clamp(24px,3vw,42px)}
.admin-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.admin-page-heading .eyebrow{margin:0 0 5px;color:#c91c26;font-size:10px;font-weight:900;letter-spacing:.16em}
.admin-page-heading h1{margin:0;color:#122234;font-size:clamp(29px,3vw,43px);line-height:1.06;letter-spacing:-.035em}
.admin-flash{display:flex;align-items:flex-start;gap:11px;margin:0 0 22px;padding:13px 15px;border:1px solid #cdd9e1;border-radius:12px;background:#fff;box-shadow:0 7px 20px rgba(28,46,65,.05);font-weight:700}
.admin-flash>span{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;font-weight:900}
.admin-flash.success{border-color:#b8dfcb;background:#ecf8f2;color:#136940}.admin-flash.success>span{background:#187a51;color:#fff}
.admin-flash.error{border-color:#efc1c1;background:#fff1ef;color:#a52018}.admin-flash.error>span{background:#b42318;color:#fff}
.admin-flash.warning{border-color:#ead6a7;background:#fff8e5;color:#845700}
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.admin-stat{position:relative;overflow:hidden;display:grid;align-content:start;min-height:154px;padding:20px;border:1px solid #dce4ea;border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(25,43,62,.055)}
.admin-stat:after{content:"";position:absolute;right:-32px;bottom:-39px;width:112px;height:112px;border:20px solid rgba(18,44,66,.035);border-radius:50%}
.admin-stat>span{color:#6c7d91;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.admin-stat>strong{position:relative;z-index:1;margin:16px 0 8px;color:#10283d;font-size:31px;line-height:1;letter-spacing:-.04em}
.admin-stat>small{position:relative;z-index:1;color:#738398;font-size:11px;overflow-wrap:anywhere}
.admin-stat:first-child{border-top:4px solid #db1f2a}.admin-stat:nth-child(2){border-top:4px solid #1d79b9}.admin-stat:nth-child(3){border-top:4px solid #167c52}.admin-stat:nth-child(4){border-top:4px solid #8659c7}
.admin-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px}
.admin-card{margin:0 0 20px;padding:clamp(20px,2.5vw,28px);border:1px solid #dce4ea;border-radius:18px;background:#fff;box-shadow:0 10px 32px rgba(24,43,63,.055)}
.admin-card>.eyebrow,.admin-card-heading .eyebrow{margin:0 0 4px;color:#c91c26;font-size:10px;font-weight:900;letter-spacing:.14em}
.admin-card h2{margin:0 0 17px;color:#16283b;font-size:22px;line-height:1.2;letter-spacing:-.02em}
.admin-card p{color:#697a8e}
.admin-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.admin-card-heading h2{margin-bottom:4px}.admin-card-heading p{margin:0}
.admin-card .button.small{padding:9px 13px;border-radius:9px;font-size:12px;white-space:nowrap}
.admin-list{display:grid;border:1px solid #e0e7ec;border-radius:13px;overflow:hidden}
.admin-list>a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 15px;border-bottom:1px solid #e5ebef;color:#1b2c3e;background:#fff;text-decoration:none;transition:background .14s ease}
.admin-list>a:last-child{border-bottom:0}.admin-list>a:hover{background:#f6f9fb;text-decoration:none}
.admin-list>a>div{display:grid;min-width:0}.admin-list strong{font-size:13px}.admin-list small{margin-top:3px;color:#75869a;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-empty{padding:18px;border:1px dashed #cad6df;border-radius:12px;background:#f8fafc;color:#718297;text-align:center}
.admin-empty.large{padding:42px 20px}.admin-empty.large strong{display:block;color:#293d51;font-size:18px}.admin-empty.large p{margin:6px auto 0;max-width:520px}
.admin-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.admin-action-grid>a{display:grid;gap:7px;padding:17px;border:1px solid #dfe6eb;border-radius:13px;background:#f8fafc;color:#24374b;text-decoration:none;transition:border .15s ease,transform .15s ease,box-shadow .15s ease}
.admin-action-grid>a:hover{border-color:#b9c8d3;transform:translateY(-2px);box-shadow:0 10px 20px rgba(27,47,67,.07);text-decoration:none}
.admin-action-grid strong{font-size:14px}.admin-action-grid span{color:#6d7e91;font-size:12px;line-height:1.5}
.node-status,.content-status{display:inline-flex;align-items:center;justify-content:center;min-width:76px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.node-status.online,.content-status.published{background:#e6f6ef;color:#167c52}.node-status.offline{background:#ffefed;color:#b42318}.node-status.unknown,.content-status.draft{background:#eef2f5;color:#647589}
.admin-form{display:grid;gap:0}.admin-settings-form{gap:0}
.admin-form label,.editor-field{display:grid;align-content:start;gap:7px;color:#273a4e;font-weight:750}
.admin-form label>span,.editor-field>span{font-size:12px}
.admin-form label small,.editor-field small{color:#77879a;font-size:10px;font-weight:500;line-height:1.45}
.admin-form input,.admin-form textarea,.admin-form select,.installer-form input,.installer-form textarea,.installer-form select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #ccd7df;border-radius:10px;background:#fff;color:#17283b;outline:none;box-shadow:inset 0 1px 2px rgba(18,38,55,.025);transition:border .15s ease,box-shadow .15s ease,background .15s ease}
.admin-form textarea,.installer-form textarea{min-height:96px;resize:vertical}
.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus,.installer-form input:focus,.installer-form textarea:focus,.installer-form select:focus{border-color:#3486bd;box-shadow:0 0 0 4px rgba(29,121,185,.12)}
.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-form-grid.one-column{grid-template-columns:1fr}.admin-form-grid .wide{grid-column:1/-1}
.toggle-field{display:flex!important;align-items:flex-start;gap:12px;min-height:74px;padding:14px;border:1px solid #dce5eb;border-radius:12px;background:#f8fafc;cursor:pointer}
.toggle-field input{appearance:none;position:relative;flex:0 0 42px;width:42px!important;height:24px;min-height:24px!important;margin:1px 0 0;padding:0!important;border:0!important;border-radius:999px!important;background:#bac6cf!important;box-shadow:none!important;transition:.18s ease}
.toggle-field input:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.18s ease}
.toggle-field input:checked{background:#167c52!important}.toggle-field input:checked:after{transform:translateX(18px)}
.toggle-field>span{display:grid;gap:3px}.toggle-field strong{font-size:13px}.toggle-field small{font-size:10px!important}
.admin-form-actions{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px;padding:15px 18px;border:1px solid #d9e2e8;border-radius:15px;background:rgba(255,255,255,.93);backdrop-filter:blur(12px);box-shadow:0 -8px 28px rgba(23,42,61,.08)}
.button.is-busy{position:relative;opacity:.8;pointer-events:none}.button.is-busy:before{content:"";width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:admin-spin .7s linear infinite}@keyframes admin-spin{to{transform:rotate(360deg)}}
.admin-table-wrap{max-width:100%;overflow:auto;border:1px solid #dfe6eb;border-radius:13px}
.admin-table{width:100%;border-collapse:collapse;background:#fff;font-size:12px}
.admin-table th{padding:11px 13px;background:#edf2f6;color:#4f6377;text-align:left;font-size:10px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.admin-table td{padding:14px 13px;border-top:1px solid #e3e9ed;vertical-align:middle;color:#35495d}.admin-table tr:hover td{background:#fafcfd}
.admin-table td>strong{display:block;color:#1e3144}.admin-table td>small{display:block;margin-top:3px;color:#8290a0;font-size:10px}
.table-actions{display:flex;align-items:center;gap:9px;white-space:nowrap}.table-actions form{display:inline}.table-actions a,.table-actions button{padding:5px 7px;border:0;background:none;color:#176fa8;font:inherit;font-weight:800;cursor:pointer}.table-actions button.danger{color:#b42318}
.admin-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.sticky-card{position:sticky;top:98px}
.editor-field{gap:0}.editor-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:8px;border:1px solid #ccd7df;border-bottom:0;border-radius:10px 10px 0 0;background:#f1f5f7}.editor-toolbar button{padding:7px 9px;border:1px solid #d3dde4;border-radius:7px;background:#fff;color:#344a5f;font-size:11px;font-weight:800;cursor:pointer}.editor-toolbar button:hover{background:#e8eef2}
.article-editor{min-height:420px;padding:18px;border:1px solid #ccd7df;border-radius:0 0 10px 10px;background:#fff;color:#17283b;outline:none;line-height:1.7}.article-editor:focus{border-color:#3486bd;box-shadow:0 0 0 4px rgba(29,121,185,.1)}
.capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.capability-grid label{display:flex!important;align-items:center;gap:9px;min-height:44px;padding:9px 11px;border:1px solid #dce4ea;border-radius:10px;background:#f8fafc;font-size:11px;font-weight:750;cursor:pointer}.capability-grid label:hover{border-color:#b9c9d4;background:#fff}.capability-grid input{width:17px!important;min-height:17px!important;height:17px;padding:0;accent-color:#db1f2a}
.admin-login-body{margin:0;min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 14% 12%,rgba(219,31,42,.14),transparent 26%),radial-gradient(circle at 88% 84%,rgba(29,121,185,.15),transparent 29%),linear-gradient(145deg,#06121d,#0d2b42);color:#17283b}
.admin-login-shell{width:min(460px,100%)}
.admin-login-card{padding:34px;border:1px solid rgba(255,255,255,.2);border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 28px 80px rgba(0,0,0,.28)}
.admin-login-card .brand{display:flex;align-items:center;gap:12px;margin-bottom:30px;color:#14283b;text-decoration:none}.admin-login-card .brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,#f22c38,#b80e18);color:#fff;font-weight:900}.admin-login-card .brand-copy{display:grid;line-height:1.2}.admin-login-card .brand-copy small{margin-top:4px;color:#718196;font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.admin-login-card>.eyebrow{margin:0;color:#c91c26;font-size:10px;font-weight:900;letter-spacing:.15em}.admin-login-card h1{margin:5px 0 7px;font-size:35px;letter-spacing:-.04em}.admin-login-card>p{color:#6a7b8e}.admin-form.stacked{gap:15px}.admin-form.stacked .button{width:100%;margin-top:5px}.admin-login-help{margin:24px 0 0!important;padding-top:18px;border-top:1px solid #e0e6eb;font-size:10px;line-height:1.55}.admin-login-help code{font-size:10px}
.admin-sidebar-overlay{display:none}

/* Installer */
.installer-body{margin:0;min-height:100vh;padding:34px 18px;background:radial-gradient(circle at 8% 10%,rgba(219,31,42,.15),transparent 25%),radial-gradient(circle at 94% 88%,rgba(29,121,185,.18),transparent 29%),linear-gradient(145deg,#06131f,#0c2a40);color:#1a2c3f}
.installer-shell{width:min(980px,100%);margin:auto}.installer-card{padding:clamp(23px,4vw,43px);border:1px solid rgba(255,255,255,.25);border-radius:24px;background:rgba(255,255,255,.98);box-shadow:0 30px 90px rgba(0,0,0,.3)}
.installer-card>.brand{display:flex;align-items:center;gap:13px;margin-bottom:30px;color:#15283b;text-decoration:none}.installer-card>.brand .brand-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#f32d38,#b80e18);color:#fff;font-size:19px;font-weight:900}.installer-card>.brand .brand-copy{display:grid;line-height:1.2}.installer-card>.brand small{margin-top:4px;color:#6e8093;font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.installer-card>.eyebrow,.installer-success .eyebrow{margin:0;color:#c91c26;font-size:10px;font-weight:900;letter-spacing:.16em}.installer-card>h1,.installer-success h1{margin:5px 0 10px;color:#132538;font-size:clamp(30px,4vw,45px);line-height:1.05;letter-spacing:-.04em}.installer-card>p{color:#68798d}
.installer-form{display:grid;gap:24px;margin-top:28px}.installer-form [data-install-section]{display:grid;gap:18px}.installer-form [data-install-section][hidden]{display:none!important}.installer-form h2{margin:14px 0 0;padding-bottom:10px;border-bottom:1px solid #e0e7ec;color:#1a2d40;font-size:19px}
.install-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.install-mode-grid>label{position:relative;display:flex;gap:12px;padding:17px;border:2px solid #dde5ea;border-radius:14px;background:#f8fafc;cursor:pointer;transition:.15s ease}.install-mode-grid>label:hover{border-color:#b9cad5;background:#fff}.install-mode-grid input{flex:0 0 18px;width:18px!important;height:18px;min-height:18px!important;margin:2px 0 0;padding:0;accent-color:#db1f2a}.install-mode-grid label:has(input:checked){border-color:#db1f2a;background:#fff5f5;box-shadow:0 0 0 3px rgba(219,31,42,.08)}.install-mode-grid span{display:grid;gap:4px}.install-mode-grid strong{font-size:14px}.install-mode-grid small{color:#6f8093;font-size:10px;line-height:1.45}
.installer-existing{margin:0}.installer-submit-row{display:flex;align-items:center;gap:16px;padding-top:5px}.installer-submit{min-width:230px}.installer-submit-status{margin:0;color:#587086;font-size:12px}.installer-actions{display:flex;flex-wrap:wrap;gap:10px;margin:23px 0}.installer-note{margin-top:24px!important;padding:14px;border:1px solid #d9e3e9;border-radius:11px;background:#f4f7f9;font-size:11px}.installer-note code{color:#a61a21}.installer-success{display:flex;align-items:center;gap:15px}.installer-success>span{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:50%;background:#e5f6ed;color:#167c52;font-size:25px;font-weight:900}.installer-result{display:grid;gap:13px;margin:22px 0}.installer-result label{display:grid;gap:6px;color:#2c4054;font-size:11px;font-weight:800}.installer-result input,.installer-result textarea{width:100%;padding:11px;border:1px solid #d2dce3;border-radius:9px;background:#f5f8fa;color:#24384b;font:12px/1.5 Consolas,monospace}

@media(max-width:1080px){.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-action-grid{grid-template-columns:1fr}.admin-editor-layout{grid-template-columns:1fr}.sticky-card{position:static}.capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.admin-body{--admin-sidebar:280px}.admin-app{display:block}.admin-sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);transition:transform .2s ease;box-shadow:18px 0 55px rgba(0,0,0,.28)}.admin-menu-open .admin-sidebar{transform:translateX(0)}.admin-sidebar-overlay{position:fixed;inset:0;z-index:45;display:block;border:0;background:rgba(3,13,22,.56);opacity:0;visibility:hidden;transition:.2s ease}.admin-menu-open .admin-sidebar-overlay{opacity:1;visibility:visible}.admin-menu-toggle{display:block}.admin-topbar{padding:11px 18px}.admin-content{padding:25px 18px}.admin-two-column{grid-template-columns:1fr}.admin-user-chip small{max-width:130px}}
@media(max-width:650px){.admin-stat-grid,.admin-form-grid,.install-mode-grid{grid-template-columns:1fr}.admin-form-grid .wide{grid-column:auto}.admin-card-heading{display:grid}.admin-card-heading .button{justify-self:start}.admin-stat{min-height:125px}.admin-page-heading h1{font-size:31px}.admin-user-chip>div{display:none}.admin-user-chip{padding:5px}.admin-form-actions{justify-content:stretch;flex-direction:column-reverse}.admin-form-actions .button{width:100%}.capability-grid{grid-template-columns:1fr}.installer-submit-row{align-items:stretch;flex-direction:column}.installer-submit{width:100%}.admin-login-card{padding:26px}.admin-table{min-width:700px}}

/* CSP-safe browser speed progress meter. Uses the progress element instead of
   JavaScript-generated inline style attributes. */
progress.speed-progress-track{display:block;width:100%;height:12px;border:0;border-radius:999px;overflow:hidden;appearance:none;-webkit-appearance:none;background:#dce5eb}
progress.speed-progress-track::-webkit-progress-bar{background:#dce5eb;border-radius:999px}
progress.speed-progress-track::-webkit-progress-value{background:linear-gradient(90deg,var(--red),#ff6870);border-radius:999px;transition:width .2s ease}
progress.speed-progress-track::-moz-progress-bar{background:linear-gradient(90deg,var(--red),#ff6870);border-radius:999px}

/* Visitor IP and browser IPv6 capability results */
.ip-address-result{display:grid;gap:9px;margin-bottom:14px;padding:21px;border:1px solid #cbd9e3;border-radius:14px;background:linear-gradient(135deg,#f7fafc,#eef5f8)}
.ip-address-result>span{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.ip-address-result>strong{font:800 clamp(22px,4vw,35px)/1.12 Consolas,Monaco,monospace;color:var(--navy);overflow-wrap:anywhere}
.ip-address-result>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.ip-address-result b{display:inline-flex;padding:4px 9px;border-radius:999px;background:var(--navy);color:#fff;font-size:11px}.ip-address-result small{color:var(--muted)}
.protocol-test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:14px}
.protocol-test-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fafcfd}.protocol-test-card.good{border-color:#b9dfca;background:var(--green-bg)}.protocol-test-card.warning{border-color:#ead7aa;background:var(--amber-bg)}.protocol-test-card.bad{border-color:#efc0c0;background:var(--danger-bg)}
.protocol-test-heading{display:grid;grid-template-columns:46px 1fr;gap:3px 10px;align-items:center}.protocol-test-heading>span{grid-row:1/3;display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#fff;color:var(--navy);font-weight:900;box-shadow:0 5px 16px rgba(20,40,59,.08)}.protocol-test-heading strong{font-size:14px}.protocol-test-heading b{font-size:11px;color:var(--muted)}
.protocol-address{margin:12px 0 9px;padding:9px;border-radius:8px;background:rgba(255,255,255,.7);font:700 12px/1.4 Consolas,monospace;overflow-wrap:anywhere}.protocol-test-card dl{display:grid;gap:5px;margin:0}.protocol-test-card dl>div{display:flex;justify-content:space-between;gap:10px;font-size:10px}.protocol-test-card dt{color:var(--muted)}.protocol-test-card dd{margin:0;font-weight:800;text-align:right;overflow-wrap:anywhere}.protocol-error{margin:10px 0 0;font-size:10px;line-height:1.45;color:inherit}
.admin-note{margin:16px 0 0;padding:12px 14px;border:1px solid #d8e2e8;border-radius:10px;background:#f5f8fa;color:#5c7084;font-size:11px;line-height:1.55}
@media(max-width:700px){.protocol-test-grid{grid-template-columns:1fr}.ip-address-result>strong{font-size:22px}}
