
:root{--ink:#233b30;--muted:#66786e;--green:#2b584a;--line:#dce5dc;--paper:#fff;--pale:#eaf2e8;--bg:#f4f6f1}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--green);text-underline-offset:3px}a:hover{color:#173d2f}a:focus-visible,summary:focus-visible{outline:3px solid #829f58;outline-offset:4px}header{border-bottom:1px solid var(--line);background:#fcfdfb}.top{max-width:1190px;margin:auto;display:flex;gap:26px;align-items:center;padding:22px 26px}.brand{text-decoration:none;letter-spacing:.12em;font-size:14px;font-weight:800;white-space:nowrap}.mark{display:inline-block;background:var(--green);width:22px;height:22px;border-radius:7px;vertical-align:middle;margin-inline-end:9px}.nav{display:flex;gap:22px;margin-inline-start:auto;font-size:14px}.nav a{text-decoration:none}.language{position:relative;font-size:13px}.language summary{cursor:pointer;border:1px solid var(--line);padding:6px 12px;border-radius:20px;background:white;list-style:none}.language summary:after{content:" ▾"}.language .choices{position:absolute;inset-inline-end:0;top:45px;background:white;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 12px 40px #233b3020;display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:7px;width:min(470px,90vw);z-index:5;max-height:65vh;overflow:auto}.choices a{padding:4px 7px;text-decoration:none}.choices a[aria-current]{background:var(--pale);border-radius:7px}.wrap{max-width:1190px;margin:auto;padding:35px 26px 64px}.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted);margin-bottom:28px}.crumbs a{text-decoration:none}.eyebrow{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}.hero{max-width:790px;margin-bottom:34px}h1{font-size:clamp(29px,4vw,43px);line-height:1.2;letter-spacing:-.025em;margin:12px 0 18px}h2{font-size:25px;line-height:1.35;margin:0 0 18px}h3{font-size:19px;line-height:1.4;margin:0 0 12px}.lead{font-size:18px;color:#566d60}.meta{font-size:12px;color:var(--muted);margin:18px 0 26px}.btn{display:inline-block;background:var(--green);color:white!important;border-radius:9px;text-decoration:none;padding:10px 17px;font-size:14px;font-weight:650}.btn:hover{background:#21483b}.outline{background:white;color:var(--green)!important;border:1px solid var(--line)}.cluster{scroll-margin-top:30px;margin:40px 0}.cluster-head{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:16px}.cluster-head h2{margin:0;font-size:23px}.cluster-head a{font-size:13px;white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:23px;display:flex;flex-direction:column;box-shadow:0 7px 23px #233b3005}.card h3 a{text-decoration:none}.card p{font-size:14px;color:var(--muted);margin:3px 0 20px}.card .read{margin-top:auto;font-size:13px;font-weight:650}.article-grid{display:grid;grid-template-columns:minmax(0,760px) minmax(210px,1fr);gap:44px}.article-body{background:white;border:1px solid var(--line);border-radius:19px;padding:34px;overflow-wrap:anywhere}.article-body section{margin-bottom:36px}.article-body p{margin:0 0 17px}.article-body li{margin-bottom:8px}.article-body ol,.article-body ul{padding-inline-start:24px}.toc{font-size:13px;background:#edf3e9;border:1px solid var(--line);padding:20px;border-radius:14px;margin-bottom:25px}.toc b{display:block;margin-bottom:10px}.toc ol{margin:0;padding-inline-start:18px}.toc li{margin:7px 0}.toolbox{border:1px solid var(--line);border-radius:15px;background:white;padding:24px;margin-bottom:25px}.toolbox h2{font-size:20px}.toolbox p{font-size:14px;color:var(--muted)}.aside-note{font-size:13px;color:var(--muted);padding:0 5px}.example{background:#f4f7f0;border-inline-start:3px solid #9cbb89;border-radius:9px;padding:22px}.example .label{font-size:12px;color:var(--muted);font-weight:700;margin:15px 0 5px}.example blockquote{margin:0;font-size:15px}.example .note{font-size:13px;margin-top:17px;margin-bottom:0;color:var(--muted)}.faq details{border-top:1px solid var(--line);padding:15px 0}.faq summary{cursor:pointer;font-weight:650}.faq p{padding-top:12px;font-size:15px}.method{background:#edf3e9;border:1px solid var(--line);border-radius:15px;padding:23px;margin-top:42px;color:var(--muted);font-size:13px}.method h2{font-size:18px;color:var(--ink);margin-bottom:10px}footer{border-top:1px solid var(--line);font-size:12px;color:var(--muted);padding:25px 26px;display:flex;gap:20px;justify-content:space-between}.related{margin-top:45px}.related h2{font-size:24px}@media(max-width:850px){.article-grid{grid-template-columns:1fr;gap:25px}.article-aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.aside-note{grid-column:1/-1}.cards{grid-template-columns:1fr 1fr}.card:last-child{grid-column:1/-1}.article-body{padding:27px}}@media(max-width:570px){.top{padding:17px 18px;gap:13px;flex-wrap:wrap}.nav{gap:13px;font-size:12px}.language{margin-inline-start:auto}.language .choices{position:fixed;top:84px;inset-inline-end:12px;grid-template-columns:repeat(2,minmax(110px,1fr))}.wrap{padding:25px 18px 45px}.cards{grid-template-columns:1fr}.card:last-child{grid-column:auto}.cluster-head{align-items:start}.cluster-head h2{font-size:20px}.article-body{padding:22px 19px}.article-aside{display:block}.lead{font-size:16px}footer{flex-wrap:wrap;padding:22px 18px}.brand{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.tool-index{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 32px}.tool-index a{font-size:12px;padding:6px 11px;border:1px solid var(--line);border-radius:20px;background:white;text-decoration:none}.tool-index a:hover{background:var(--pale)}

/* Teksovira Signal Lab palette: shared across every localized article. */
:root{color-scheme:dark;--ink:#edf1ff;--muted:#a5aec9;--green:#9c8bff;--line:#29324e;--paper:#11172a;--pale:#1b2140;--bg:#090d19}
body{background:radial-gradient(ellipse at 78% 18%,rgb(70 63 158 / .2),transparent 38%),radial-gradient(ellipse at 42% 58%,rgb(26 115 139 / .08),transparent 48%),var(--bg);color:var(--ink)}
a{color:#b9b1ff}a:hover{color:#70ded4}a:focus-visible,summary:focus-visible{outline-color:#9589ff}
header{border-color:#252c45;background:#0d1222}
.top .brand{color:#f2f3ff}.mark{background:linear-gradient(145deg,#7d6eff,#19b5c1);box-shadow:0 7px 22px rgb(91 80 216 / .32)}
.nav a{color:#bac2dc}.nav a:hover{color:#fff}
.language summary{border-color:#303956;background:#141b30;color:#d9dff5}
.language .choices{border-color:#303956;background:#11172a;box-shadow:0 12px 40px rgb(2 6 25 / .55)}
.choices a{color:#c8cfea}.choices a[aria-current]{background:#211f42;color:#d7d2ff}
.crumbs{color:#929dbb}.crumbs a{color:#b4aaff}
.eyebrow{color:#a9a0ff}.lead{color:#a5aec9}
.meta{color:#929dbb}
.btn{background:linear-gradient(105deg,#6958e8,#317fc8);box-shadow:0 8px 24px rgb(92 75 216 / .25)}
.btn:hover{background:linear-gradient(105deg,#7869f0,#3d90d8)}
.outline{background:#171f35;color:#c4cbe0!important;border-color:#35405f}
.card,.article-body,.toolbox{background:linear-gradient(145deg,#13192e,#0e1425);border-color:#2b3452;box-shadow:0 20px 60px rgb(2 6 25 / .3)}
.card p,.toolbox p,.aside-note{color:#a5aec9}
.article-body h2,.article-body h3,.toolbox h2{color:#edf1ff}
.toc,.method{background:#151a37;border-color:#303956;color:#a5aec9}
.toc b,.method h2{color:#edf1ff}
.example{background:#11192c;border-inline-start-color:#70ded4}
.example .label,.example .note{color:#a5aec9}
.faq details{border-color:#29324e}.faq summary{color:#e7eaff}
footer{border-color:#29324e;color:#929dbb}
.tool-index a{background:#171e34;color:#c8cfea;border-color:#303956}
.tool-index a:hover{background:#211f42;color:#fff}
body[data-app-switcher="teksovira"]:not(:has(.sidebar)) #site-app-switcher{width:100%;margin-inline-start:0}
/* Article templates can arrive with a cached global switcher stylesheet. Keep their app bar on the same dark Signal Lab palette regardless of that cache. */
html body[data-app-switcher="teksovira"]:not(:has(.sidebar)) #site-app-switcher{--switch-bg:#0d1222;--switch-text:#bac2dc;--switch-border:#252c45;--switch-pill:#171e34;--switch-pill-border:#303956;--switch-pill-hover:#211f42;--switch-active:#6958e8;--switch-active-text:#fff;width:100%;margin-inline-start:0;background:#0d1222;color:#bac2dc;border-color:#252c45}
html body[data-app-switcher="teksovira"]:not(:has(.sidebar)) #site-app-switcher .site-app-switcher-link{background:#171e34;color:#bac2dc;border-color:#303956}
html body[data-app-switcher="teksovira"]:not(:has(.sidebar)) #site-app-switcher .site-app-switcher-link:hover{background:#211f42;color:#fff;border-color:#6958e8}
html body[data-app-switcher="teksovira"]:not(:has(.sidebar)) #site-app-switcher .site-app-switcher-link.is-current{background:linear-gradient(110deg,#7d4dff,#3979e8);color:#fff;border-color:transparent}
@media(max-width:570px){.language .choices{background:#11172a;border-color:#303956}}
