/* Shared kaputly palette. The landing page retains its own composition. */
:root { --lime: #c4f568; }
body:not(.landing-page) {
  --ink: #f5f7ee;
  --muted: #adc2b4;
  --green: #c4f568;
  --green-dark: #d3ff88;
  --border: #335447;
  --paper: #102c25;
  --bg: #071f1b;
  --red: #ff9b94;
  --amber: #ecd58e;
  --shadow: 0 10px 30px #00000012;
  color-scheme: dark;
  background: radial-gradient(ellipse at 85% 0, #173c2c66, transparent 650px), var(--bg);
}

/* Common header and warm, light footer connect every page to the home page. */
.site-header { background: #071f1b; border-color: #29463b; color: #f5f7ee; }
.site-header .signal { fill: var(--lime); }
.site-header nav a { color: #c1d0c6; }
.site-header nav a:hover { color: var(--lime); }
.site-header .languages a { background: transparent; border-color: #456354; }
.site-header .languages a[aria-current=true] { color: var(--lime); background: #17392a; border-color: #4f7450; }
.header-search { background: #f4f6ef; border-color: #d7ded0; }
.header-search > span { color: #5d7666; }
.header-search input { color: #0a2520; }
.header-search input::placeholder { color: #687e6d; }
.site-footer {
  --ink: #0a2520;
  --muted: #6b7e71;
  --green: #498364;
  --green-dark: #315c44;
  --border: #d7ded0;
  background: #f4f6ef;
  border-color: #d7ded0;
  color: #0a2520;
  color-scheme: light;
}
.site-footer .signal { fill: #498364; }

/* Forms, panels and navigation use green neutrals, with lime for actions. */
body:not(.landing-page) :is(.metric, .service-card, .directory-search, .hero-search) { background: var(--paper); }
body:not(.landing-page) :is(input, select, textarea) { background: #0b241e; border-color: #52705a; color: var(--ink); }
body:not(.landing-page) input::placeholder,
body:not(.landing-page) textarea::placeholder { color: #9bb1a2; }
body:not(.landing-page) .header-search input { background: transparent; border: 0; color: #0a2520; }
body:not(.landing-page) .header-search input::placeholder { color: #687e6d; }
body:not(.landing-page) :is(a, button):focus-visible { outline-color: var(--lime); }
body:not(.landing-page) :is(input, select, textarea):focus-visible { outline-color: var(--lime); border-color: var(--lime); }
body:not(.landing-page) .skip-link { background: var(--lime); color: #071f1b; }
body:not(.landing-page) .button { background: var(--lime); color: #0a2520; border-color: var(--lime); }
body:not(.landing-page) .button:hover { background: #d3ff88; border-color: #d3ff88; }
body:not(.landing-page) .button.secondary { background: #16352a; color: #e2efda; border-color: #60785a; }
body:not(.landing-page) .button.secondary:hover { background: #234732; border-color: #9cbb75; }
body:not(.landing-page) .button.outline { background: transparent; color: var(--lime); border-color: #7ba35c; }
body:not(.landing-page) .button.outline:hover { background: #c4f56812; }
body:not(.landing-page) .button.danger { background: #ff9b94; border-color: #ff9b94; color: #351b1b; }
body:not(.landing-page) .button.danger:hover { background: #ffb6ae; border-color: #ffb6ae; }
body:not(.landing-page) :is(.text-button, .table-actions a) { color: var(--lime); }
body:not(.landing-page) .table-actions :is(a.danger-link, .text-button.danger-link) { color: var(--red); }
body:not(.landing-page) :is(.hero-icon, .service-icon, .empty-icon) { background: #29432b; color: var(--lime); border-color: #466c3b; }
body:not(.landing-page) :is(.metric > span, .method-card dt, .related > span, .card-bottom time, .service-checked time, .admin-nav a) { color: var(--muted); }
body:not(.landing-page) .arrow { color: #98b780; }
body:not(.landing-page) .service-row:hover { background: #1a3b2c; }
body:not(.landing-page) .service-card:hover { border-color: #8cb467; }
body:not(.landing-page) :is(.method-card dl > div, .related, .incident, .card-bottom, td, th) { border-color: var(--border); }
body:not(.landing-page) th { background: #17372a; color: #bbcebb; }
body:not(.landing-page) .worker-info { background: #153829; color: #bbcebb; }
body:not(.landing-page) .form-panel input[type=file] { background: #0b241e; }
body:not(.landing-page) .form-panel code { background: #244032; color: #deebcf; }
body:not(.landing-page) .prose p a { color: var(--lime); text-decoration: underline; text-underline-offset: 3px; }
body:not(.landing-page) .prose .lead { color: #d4e2cc; }

/* Preserve the distinction between success, outages, warnings and missing data. */
body:not(.landing-page) .status-panel { background: #193a2a; border-color: #667f46; }
body:not(.landing-page) .status-panel .status-meta { color: #b1c5ad; }
body:not(.landing-page) .status-panel.down { background: #392524; border-color: #885550; }
body:not(.landing-page) .status-panel:is(.unknown, .stale) { background: #343320; border-color: #837645; }
body:not(.landing-page) .status-panel:is(.pending, .paused) { background: #18342b; border-color: #526d5d; }
body:not(.landing-page) .status-panel:is(.pending, .paused) .status-orb { background: #a9baac; }
body:not(.landing-page) .status-panel:is(.unknown, .stale) .status-orb { background: #ecd58e; }
body:not(.landing-page) .status-orb { box-shadow: 0 0 24px #c4f56815; }
body:not(.landing-page) .status-badge { background: #203b30; color: #c1d2c4; border-color: #536d5d; }
body:not(.landing-page) .status-badge .dot { background: #a9baac; }
body:not(.landing-page) .status-badge.up { background: #29432b; color: #d3f49e; border-color: #66864c; }
body:not(.landing-page) .status-badge.up .dot { background: var(--lime); }
body:not(.landing-page) .status-badge.down { background: #402826; color: #ffaea5; border-color: #8d5750; }
body:not(.landing-page) .status-badge.down .dot { background: var(--red); }
body:not(.landing-page) .status-badge:is(.unknown, .stale) { background: #3a3520; color: #f0d996; border-color: #877448; }
body:not(.landing-page) .status-badge:is(.unknown, .stale) .dot { background: #ecd58e; }
body:not(.landing-page) .notice.error { background: #402826; border-color: #8d5750; color: #ffaea5; }
body:not(.landing-page) .notice.success { background: #29432b; border-color: #66864c; color: #d3f49e; }
body:not(.landing-page) .segments { background: #0b241e; }
body:not(.landing-page) .segments a { color: #bbcebb; }
body:not(.landing-page) .segments .selected { background: var(--lime); color: #0a2520; }
body:not(.landing-page) .segments a:hover:not(.selected) { background: #29432b; }
body:not(.landing-page) .chart text { fill: #adc2b4; }
body:not(.landing-page) .gridline { stroke: #335447; }
body:not(.landing-page) .chart rect[fill="#10b981"] { fill: #c4f568; }
body:not(.landing-page) .chart rect[fill="#f26c69"] { fill: #ff9b94; }
body:not(.landing-page) .chart rect[fill="#b8c2cc"] { fill: #94aa98; }
body:not(.landing-page) .chart rect[fill="#e4e9ed"] { fill: #365346; }
body:not(.landing-page) .legend .up { background: #c4f568; }
body:not(.landing-page) .legend .down { background: #ff9b94; }
body:not(.landing-page) .legend .unknown { background: #94aa98; }
body:not(.landing-page) .legend .no-data { background: #365346; }
body:not(.landing-page) .latency-chart path { stroke: var(--lime); }
body:not(.landing-page) .latency-chart circle { fill: var(--lime); }
body:not(.landing-page) .ip-panel { background: radial-gradient(ellipse at 85% 0, #c4f56812, transparent 75%), #193a2a; border-color: #667f46; }
body:not(.landing-page) .ip-panel h2 { color: #d4e2cc; }
body:not(.landing-page) .ip-address { color: var(--lime); }
.measurement-summary { max-width: 85ch; margin: 0 0 24px; font-size: 14px; line-height: 1.75; }

/* Cookie-free language navigation and page analytics. */
.header-inner{flex-wrap:wrap}.languages{display:flex;gap:.25rem;flex-wrap:wrap}.languages a{font-size:.8rem;padding:.4rem .55rem;border-radius:.4rem}.languages a[aria-current="true"]{background:var(--accent,#cbf36a);color:#071f1b}.languages a:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.analytics-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;padding:1.25rem;margin:1.25rem 0}.analytics-filters label{display:flex;flex-direction:column;gap:.4rem}.analytics-section{padding:1.25rem;margin:1.25rem 0}.analytics-breakdowns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.analytics-breakdowns .analytics-section{margin:0}.analytics-chart{display:block;width:100%;height:180px;fill:#cbf36a;margin:1rem 0}.analytics-chart-track{fill:#17493a}.analytics-agent{overflow-wrap:anywhere;min-width:180px;max-width:360px}.analytics-page details summary{cursor:pointer}.analytics-page td{vertical-align:top}.analytics-page .metric-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.analytics-page .actions{flex-wrap:wrap}

/* On-demand public website diagnostics. */
.tools-page{padding-top:2rem;padding-bottom:3rem}.tools-heading{max-width:800px;margin:2rem 0}.tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.tool-card{display:flex;flex-direction:column;gap:.6rem;padding:1.5rem;text-decoration:none;color:inherit}.tool-card:hover,.tool-card:focus-visible{border-color:#cbf36a}.tool-card h2{margin:0}.tool-card p{flex:1;color:#bdd1c7}.tool-number{color:#cbf36a;font-weight:700;letter-spacing:.12em}.tool-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.tool-tabs a{padding:.65rem .9rem;border:1px solid #35604f;border-radius:.5rem;text-decoration:none}.tool-tabs .selected{background:#cbf36a;color:#071f1b}.tool-form,.tool-result,.tool-result-heading{padding:1.4rem;margin:1.25rem 0}.tool-form label{display:block;font-weight:700;margin-bottom:.6rem}.tool-input-row{display:flex;gap:.75rem}.tool-input-row input{flex:1;min-width:0}.tool-input-row button{white-space:nowrap}.tool-result-heading h2{margin-bottom:.6rem}.tool-url,.tool-code,.tool-facts dd{overflow-wrap:anywhere;word-break:break-word}.tool-code{font-family:ui-monospace,monospace;font-size:.88rem}.tool-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1rem 0}.tool-facts dt{font-size:.85rem;color:#bdd1c7}.tool-facts dd{margin:.3rem 0 0}.tool-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}.tool-checks>div{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}.tool-certificate{padding:1rem 0;border-bottom:1px solid #35604f}.tool-certificate summary{cursor:pointer;overflow-wrap:anywhere}.tool-hop{padding:1rem 0;border-bottom:1px solid #35604f}.tool-result textarea{width:100%;font-family:ui-monospace,monospace;font-size:.85rem}.tools-footnote{font-size:.9rem;color:#bdd1c7;margin-top:1.5rem}.tool-result .actions{flex-wrap:wrap}.tool-result th,.tool-result td{vertical-align:top}.tool-result h3{margin-top:1.5rem}.tool-form [disabled]{opacity:.65;cursor:wait}@media(max-width:640px){.tools-grid{grid-template-columns:1fr}.tool-input-row{flex-direction:column}.tool-input-row button{align-self:stretch}.tools-page{padding-top:1rem}.tool-facts{grid-template-columns:1fr}}

.analytics-traffic{margin:1.25rem 0}.analytics-filters>.actions{align-items:center}

/* External-site notice and ten-second countdown. */
.outbound-page { display: grid; place-items: center; min-height: 65vh; padding-top: 48px; }
.outbound-card { width: 100%; max-width: 660px; padding: 40px; text-align: center; background: radial-gradient(ellipse at 50% 0, #c4f56810, transparent 65%), var(--paper); }
.outbound-icon { display: inline-grid; place-items: center; width: 52px; height: 52px; margin-bottom: 20px; border: 1px solid #667f46; border-radius: 16px; background: #29432b; color: var(--lime); font-size: 30px; }
.outbound-eyebrow { color: var(--lime); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.outbound-card h1 { font-size: clamp(28px, 4vw, 40px); overflow-wrap: anywhere; }
.outbound-disclaimer { line-height: 1.8; margin: 20px 0 24px; }
.outbound-destination { padding: 18px; background: #0b241e; border: 1px solid var(--border); border-radius: 12px; overflow-wrap: anywhere; }
.outbound-destination > span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 5px; }
.outbound-destination strong { font-size: 19px; }
.outbound-destination p { margin: 5px 0 0; font-size: 14px; }
.outbound-countdown { margin: 26px 0; }
.outbound-countdown[hidden] { display: none; }
.outbound-clock { position: relative; width: 108px; height: 108px; margin: 0 auto 12px; }
.outbound-clock svg { width: 100%; height: 100%; transform: rotate(-90deg); fill: none; stroke-width: 5; }
.outbound-track { stroke: var(--border); }
.outbound-ring { stroke: var(--lime); stroke-linecap: round; stroke-dasharray: 100; }
.outbound-clock strong { position: absolute; inset: 0; display: grid; place-items: center; color: var(--lime); font-size: 36px; font-variant-numeric: tabular-nums; }
.is-counting .outbound-ring { animation: outbound-drain 10s linear forwards; }
.outbound-countdown p { margin: 0; font-size: 14px; }
.outbound-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }
.outbound-fallback { margin-top: 24px; }
@keyframes outbound-drain { from { stroke-dashoffset: 0; } to { stroke-dashoffset: 100; } }
@media (prefers-reduced-motion: reduce) { .is-counting .outbound-ring { animation: none; } }
@media (max-width: 600px) { .outbound-page { padding-top: 24px; } .outbound-card { padding: 26px 20px; } .outbound-actions { flex-direction: column; } }
