/* Service skins: the estate look for the newsletters, data and social services (services/skins/build.mjs writes
   the served copies; edit this source). Nexus Foundry kit tokens; 5px corners, 4px chips; no gradient, glow, blur or
   shadow; dark by default, light from the device or the estate's nx_theme cookie; logical properties for right to left. */

/* 1. Faces: IBM Plex Sans and Mono, Vazirmatn for Arabic script, self-hosted (SIL OFL 1.1, fonts/OFL-*.txt) */
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; src: local("IBM Plex Sans"), local("IBMPlexSans"), url("fonts/ibm-plex-sans-latin1-400-normal.woff2") format("woff2"); unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+FB01-FB02; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap; src: local("IBM Plex Sans Medium"), local("IBMPlexSans-Medium"), url("fonts/ibm-plex-sans-latin1-500-normal.woff2") format("woff2"); unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+FB01-FB02; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600; font-display: swap; src: local("IBM Plex Sans SemiBold"), local("IBMPlexSans-SemiBold"), url("fonts/ibm-plex-sans-latin1-600-normal.woff2") format("woff2"); unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+FB01-FB02; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; src: local("IBM Plex Sans"), local("IBMPlexSans"), url("fonts/ibm-plex-sans-latin2-400-normal.woff2") format("woff2"); unicode-range: U+0100-0101, U+0104-0130, U+0132-0151, U+0154-017F, U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+1E80-1E85, U+1E9E, U+20A1, U+20A4, U+20A6, U+20A8-20AA, U+20AD-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BD, U+20BF; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap; src: local("IBM Plex Sans Medium"), local("IBMPlexSans-Medium"), url("fonts/ibm-plex-sans-latin2-500-normal.woff2") format("woff2"); unicode-range: U+0100-0101, U+0104-0130, U+0132-0151, U+0154-017F, U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+1E80-1E85, U+1E9E, U+20A1, U+20A4, U+20A6, U+20A8-20AA, U+20AD-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BD, U+20BF; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600; font-display: swap; src: local("IBM Plex Sans SemiBold"), local("IBMPlexSans-SemiBold"), url("fonts/ibm-plex-sans-latin2-600-normal.woff2") format("woff2"); unicode-range: U+0100-0101, U+0104-0130, U+0132-0151, U+0154-017F, U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+1E80-1E85, U+1E9E, U+20A1, U+20A4, U+20A6, U+20A8-20AA, U+20AD-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BD, U+20BF; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; src: local("IBM Plex Sans"), local("IBMPlexSans"), url("fonts/ibm-plex-sans-pi-400-normal.woff2") format("woff2"); unicode-range: U+0E3F, U+2000-200D, U+2015, U+2028-2029, U+202F, U+2032-2033, U+2070, U+2074-2079, U+2080-2089, U+2113, U+2116, U+2126, U+212E, U+2150-2151, U+2153-215E, U+2190-2199, U+21A9-21AA, U+21B0-21B3, U+21B6-21B7, U+21BA-21BB, U+21C4, U+21C6, U+2202, U+2206, U+220F, U+2211, U+2215, U+221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+2713, U+274C, U+2B0E-2B11, U+ECE0, U+EFCC, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap; src: local("IBM Plex Sans Medium"), local("IBMPlexSans-Medium"), url("fonts/ibm-plex-sans-pi-500-normal.woff2") format("woff2"); unicode-range: U+0E3F, U+2000-200D, U+2015, U+2028-2029, U+202F, U+2032-2033, U+2070, U+2074-2079, U+2080-2089, U+2113, U+2116, U+2126, U+212E, U+2150-2151, U+2153-215E, U+2190-2199, U+21A9-21AA, U+21B0-21B3, U+21B6-21B7, U+21BA-21BB, U+21C4, U+21C6, U+2202, U+2206, U+220F, U+2211, U+2215, U+221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+2713, U+274C, U+2B0E-2B11, U+ECE0, U+EFCC, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: local("IBM Plex Mono"), local("IBMPlexMono"), url("fonts/ibm-plex-mono-latin1-400-normal.woff2") format("woff2"); unicode-range: U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+FB01-FB02; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: local("IBM Plex Mono Medium"), local("IBMPlexMono-Medium"), url("fonts/ibm-plex-mono-latin1-500-normal.woff2") format("woff2"); unicode-range: U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+FB01-FB02; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: local("IBM Plex Mono"), local("IBMPlexMono"), url("fonts/ibm-plex-mono-latin2-400-normal.woff2") format("woff2"); unicode-range: U+0100-0101, U+0104-0130, U+0132-0151, U+0154-017F, U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+1E80-1E85, U+1E9E, U+20A1, U+20A4, U+20A6, U+20A8-20AA, U+20AD-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BD, U+20BF; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: local("IBM Plex Mono Medium"), local("IBMPlexMono-Medium"), url("fonts/ibm-plex-mono-latin2-500-normal.woff2") format("woff2"); unicode-range: U+0100-0101, U+0104-0130, U+0132-0151, U+0154-017F, U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+1E80-1E85, U+1E9E, U+20A1, U+20A4, U+20A6, U+20A8-20AA, U+20AD-20AE, U+20B1-20B2, U+20B4-20B5, U+20B8-20BA, U+20BD, U+20BF; }
@font-face { font-family: "Vazirmatn"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/vazirmatn-arabic-400-normal.woff2") format("woff2"); size-adjust: 100%; unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: "Vazirmatn"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/vazirmatn-arabic-500-normal.woff2") format("woff2"); size-adjust: 100%; unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }

/* 2. Tokens (kit section 2.1). Field borders are stronger than the kit's hairline so every field keeps 3:1. */
:root {
  color-scheme: dark;
  --nx-sans: "IBM Plex Sans", "Vazirmatn", system-ui, -apple-system, "Segoe UI", sans-serif;
  --nx-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --nx-bg: #000000;
  --nx-surface: #0a0a0a;
  --nx-elevated: #111111;
  --nx-muted-bg: #141414;
  --nx-hover: #1a1a1a;
  --nx-line: rgba(255, 255, 255, .10);
  --nx-line-strong: rgba(255, 255, 255, .20);
  --nx-field-border: #737373;
  --nx-text: #ffffff;
  --nx-text-2: #d4d4d4;
  --nx-text-3: #a3a3a3;
  --nx-primary-bg: #ffffff;
  --nx-primary-ink: #000000;
  --nx-primary-hover: #e5e5e5;
  --nx-primary-active: #d4d4d4;
  --nx-critical: #f28b82;
  --nx-positive: #81c995;
  --nx-radius: 5px;
  --nx-radius-chip: 4px;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    color-scheme: light;
    --nx-bg: #ffffff; --nx-surface: #ffffff; --nx-elevated: #fafafa; --nx-muted-bg: #f4f4f5; --nx-hover: #ededed;
    --nx-line: rgba(0, 0, 0, .10); --nx-line-strong: rgba(0, 0, 0, .20); --nx-field-border: #767676;
    --nx-text: #000000; --nx-text-2: #262626; --nx-text-3: #525252;
    --nx-primary-bg: #000000; --nx-primary-ink: #ffffff; --nx-primary-hover: #262626; --nx-primary-active: #404040;
    --nx-critical: #c62828; --nx-positive: #1e7e46;
  }
}
:root[data-theme="light"] {
  color-scheme: light;
  --nx-bg: #ffffff; --nx-surface: #ffffff; --nx-elevated: #fafafa; --nx-muted-bg: #f4f4f5; --nx-hover: #ededed;
  --nx-line: rgba(0, 0, 0, .10); --nx-line-strong: rgba(0, 0, 0, .20); --nx-field-border: #767676;
  --nx-text: #000000; --nx-text-2: #262626; --nx-text-3: #525252;
  --nx-primary-bg: #000000; --nx-primary-ink: #ffffff; --nx-primary-hover: #262626; --nx-primary-active: #404040;
  --nx-critical: #c62828; --nx-positive: #1e7e46;
}
/* Network signal colours (brand/<id>/tokens.json): accent for marks and rules, link and focus AA-checked. */
:root { --nx-accent: #ffc800; --nx-link: #ffc800; --nx-focus: #ffc800; }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) { --nx-accent: #ffc800; --nx-link: #000000; --nx-focus: #000000; } }
:root[data-theme="light"] { --nx-accent: #ffc800; --nx-link: #000000; --nx-focus: #000000; }
:root[data-nx-net="kco"] { --nx-accent: #FF8E7E; --nx-link: #FF8E7E; --nx-focus: #FF8E7E; }
@media (prefers-color-scheme: light) { :root[data-nx-net="kco"]:not([data-theme="dark"]) { --nx-accent: #A3221B; --nx-link: #A3221B; --nx-focus: #A3221B; } }
:root[data-nx-net="kco"][data-theme="light"] { --nx-accent: #A3221B; --nx-link: #A3221B; --nx-focus: #A3221B; }
:root[data-nx-net="idcdc"] { --nx-accent: #97B1FF; --nx-link: #97B1FF; --nx-focus: #97B1FF; }
@media (prefers-color-scheme: light) { :root[data-nx-net="idcdc"]:not([data-theme="dark"]) { --nx-accent: #1C3F94; --nx-link: #1C3F94; --nx-focus: #1C3F94; } }
:root[data-nx-net="idcdc"][data-theme="light"] { --nx-accent: #1C3F94; --nx-link: #1C3F94; --nx-focus: #1C3F94; }
:root[data-nx-net="ra"] { --nx-accent: #8c9aff; --nx-link: #8c9aff; --nx-focus: #8c9aff; }
@media (prefers-color-scheme: light) { :root[data-nx-net="ra"]:not([data-theme="dark"]) { --nx-accent: #081df4; --nx-link: #081df4; --nx-focus: #081df4; } }
:root[data-nx-net="ra"][data-theme="light"] { --nx-accent: #081df4; --nx-link: #081df4; --nx-focus: #081df4; }
:root[data-nx-net="index"] { --nx-accent: #ff8a3d; --nx-link: #ff8a3d; --nx-focus: #ff8a3d; }
@media (prefers-color-scheme: light) { :root[data-nx-net="index"]:not([data-theme="dark"]) { --nx-accent: #c2410c; --nx-link: #c2410c; --nx-focus: #c2410c; } }
:root[data-nx-net="index"][data-theme="light"] { --nx-accent: #c2410c; --nx-link: #c2410c; --nx-focus: #c2410c; }
:root[data-nx-net="grf"] { --nx-accent: #ff5c75; --nx-link: #ff5c75; --nx-focus: #ff5c75; }
@media (prefers-color-scheme: light) { :root[data-nx-net="grf"]:not([data-theme="dark"]) { --nx-accent: #d81c45; --nx-link: #d81c45; --nx-focus: #d81c45; } }
:root[data-nx-net="grf"][data-theme="light"] { --nx-accent: #d81c45; --nx-link: #d81c45; --nx-focus: #d81c45; }
:root[data-nx-net="gra"] { --nx-accent: #6ea8ff; --nx-link: #6ea8ff; --nx-focus: #6ea8ff; }
@media (prefers-color-scheme: light) { :root[data-nx-net="gra"]:not([data-theme="dark"]) { --nx-accent: #2563eb; --nx-link: #2563eb; --nx-focus: #2563eb; } }
:root[data-nx-net="gra"][data-theme="light"] { --nx-accent: #2563eb; --nx-link: #2563eb; --nx-focus: #2563eb; }
:root[data-nx-net="nxs"] { --nx-accent: #e4546f; --nx-link: #e4546f; --nx-focus: #e4546f; }
@media (prefers-color-scheme: light) { :root[data-nx-net="nxs"]:not([data-theme="dark"]) { --nx-accent: #b3122e; --nx-link: #b3122e; --nx-focus: #b3122e; } }
:root[data-nx-net="nxs"][data-theme="light"] { --nx-accent: #b3122e; --nx-link: #b3122e; --nx-focus: #b3122e; }
:root[data-nx-net="obs"] { --nx-accent: #FF1F1F; --nx-link: #FF1F1F; --nx-focus: #FF1F1F; }
@media (prefers-color-scheme: light) { :root[data-nx-net="obs"]:not([data-theme="dark"]) { --nx-accent: #FF1F1F; --nx-link: #0a0a0a; --nx-focus: #FF1F1F; } }
:root[data-nx-net="obs"][data-theme="light"] { --nx-accent: #FF1F1F; --nx-link: #0a0a0a; --nx-focus: #FF1F1F; }
:root[data-nx-net="obp"] { --nx-accent: #00E07A; --nx-link: #3D9BFF; --nx-focus: #00E07A; }
@media (prefers-color-scheme: light) { :root[data-nx-net="obp"]:not([data-theme="dark"]) { --nx-accent: #00E07A; --nx-link: #000000; --nx-focus: #000000; } }
:root[data-nx-net="obp"][data-theme="light"] { --nx-accent: #00E07A; --nx-link: #000000; --nx-focus: #000000; }

/* 3. Page */
html { background: var(--nx-bg); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.nxs {
  margin: 0; min-height: 100vh; display: flex; flex-direction: column;
  background: var(--nx-bg); color: var(--nx-text-2);
  font: 400 15px/1.55 var(--nx-sans); overflow-wrap: anywhere;
}
.nxs *, .nxs *::before, .nxs *::after { box-sizing: border-box; }
.nxs a { color: var(--nx-link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.nxs a:hover { text-decoration-thickness: 2px; }
.nxs :focus-visible { outline: 2px solid var(--nx-focus); outline-offset: 2px; }
.nxs [hidden] { display: none !important; }
.nxs-skip { position: absolute; inset-inline-start: 16px; top: -48px; z-index: 10; padding: 8px 12px; background: var(--nx-primary-bg); color: var(--nx-primary-ink) !important; border-radius: var(--nx-radius); text-decoration: none !important; }
.nxs-skip:focus { top: 8px; }

/* 4. Bar: the network's mark and name, the service eyebrow, the service's own links */
.nxs-bar { border-bottom: 1px solid var(--nx-line); background: var(--nx-bg); }
.nxs-bar-in { max-width: 1200px; margin: 0 auto; min-height: 64px; padding: 10px 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.nxs-brand { display: inline-flex; align-items: center; gap: 12px; min-width: 0; color: var(--nx-text) !important; text-decoration: none !important; }
.nxs-mark { width: 28px; height: 32px; object-fit: contain; flex: none; }
.nxs-tile { flex: none; min-width: 32px; height: 32px; padding: 0 6px; display: inline-grid; place-items: center; border: 1px solid var(--nx-line-strong); border-radius: var(--nx-radius-chip); font: 500 11px/1 var(--nx-mono); letter-spacing: .08em; color: var(--nx-text); }
.nxs-brand-text { display: flex; flex-direction: column; min-width: 0; }
.nxs-service { font: 500 11px/1.3 var(--nx-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--nx-text-3); }
.nxs-net { font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--nx-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 42ch; }
.nxs-nav { margin-inline-start: auto; }
.nxs-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 20px; }
.nxs-nav a { color: var(--nx-text-2) !important; text-decoration: none !important; font-size: 14px; padding: 6px 0; border-bottom: 2px solid transparent; }
.nxs-nav a:hover, .nxs-nav a[aria-current="page"], .nxs-nav .active > a { color: var(--nx-text) !important; border-bottom-color: var(--nx-text); }

/* 5. Main */
.nxs-main { flex: 1 0 auto; width: 100%; max-width: 1200px; margin: 0 auto; padding: 48px 24px 72px; }
.nxs-narrow { max-width: 480px; margin-inline: auto; }
.nxs-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 12px; font: 500 11px/1.4 var(--nx-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--nx-text-3); }
.nxs-eyebrow::before { content: ""; width: 24px; height: 2px; background: var(--nx-accent); }
.nxs-title { margin: 0 0 12px; font-size: clamp(26px, 4vw, 34px); font-weight: 500; line-height: 1.2; letter-spacing: -.02em; color: var(--nx-text); }
.nxs-h2 { margin: 32px 0 12px; font-size: 18px; font-weight: 500; letter-spacing: -.01em; color: var(--nx-text); }
.nxs-lede { margin: 0 0 28px; max-width: 62ch; color: var(--nx-text-2); }
.nxs-meta { font: 400 12px/1.5 var(--nx-mono); color: var(--nx-text-3); font-variant-numeric: tabular-nums; }
.nxs-card { background: var(--nx-surface); border: 1px solid var(--nx-line); border-radius: var(--nx-radius); padding: 28px 24px; }
.nxs-card > :first-child { margin-top: 0; }
.nxs-stack > * + * { margin-top: 16px; }
.nxs-prose { max-width: 70ch; }
.nxs-prose p { margin: 0 0 12px; }

/* 6. Fields and buttons (kit 5.1, 5.4; auth fields 46px) */
.nxs-field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; }
.nxs-label, .nxs-field > label { font-size: 13px; font-weight: 500; color: var(--nx-text); }
.nxs-help { font-size: 12px; color: var(--nx-text-3); margin: 0; }
.nxs-input, .nxs input[type="text"], .nxs input[type="email"], .nxs input[type="password"], .nxs input[type="search"], .nxs select, .nxs textarea {
  width: 100%; min-height: 46px; padding: 10px 12px; font: inherit; font-size: 15px; color: var(--nx-text);
  background: var(--nx-surface); border: 1px solid var(--nx-field-border); border-radius: var(--nx-radius);
}
.nxs input:focus-visible, .nxs select:focus-visible, .nxs textarea:focus-visible { outline: 2px solid var(--nx-focus); outline-offset: 1px; border-color: var(--nx-focus); }
.nxs input::placeholder { color: var(--nx-text-3); opacity: 1; }
.nxs input[aria-invalid="true"] { border-color: var(--nx-critical); }
.nxs-check { display: grid; grid-template-columns: 20px 1fr; gap: 4px 12px; align-items: start; margin: 0 0 12px; }
.nxs-check input { width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--nx-text); }
.nxs-check label { color: var(--nx-text); }
.nxs-check .nxs-help { grid-column: 2; }
.nxs-btn, .nxs button.nxs-btn, .nxs input.nxs-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 0 20px;
  font: 500 15px/1 var(--nx-sans); text-transform: none; letter-spacing: 0; cursor: pointer;
  border-radius: var(--nx-radius); border: 1px solid var(--nx-primary-bg);
  background: var(--nx-primary-bg); color: var(--nx-primary-ink) !important; text-decoration: none !important;
}
.nxs-btn:hover { background: var(--nx-primary-hover); border-color: var(--nx-primary-hover); }
.nxs-btn:active { background: var(--nx-primary-active); }
.nxs-btn[data-variant="secondary"] { background: transparent; color: var(--nx-text) !important; border-color: var(--nx-field-border); }
.nxs-btn[data-variant="secondary"]:hover { background: var(--nx-hover); }
.nxs-btn[data-block] { width: 100%; }
.nxs-btn[disabled], .nxs-btn[aria-busy="true"] { opacity: .72; cursor: progress; }
.nxs-btn img, .nxs-btn svg { width: 20px; height: 20px; flex: none; }
.nxs-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 20px; }

/* 7. Messages (tone on the leading edge only, kit 5.7) */
.nxs-banner { margin: 0 0 20px; padding: 12px 16px; background: var(--nx-elevated); border: 1px solid var(--nx-line-strong); border-inline-start: 3px solid var(--nx-text-3); border-radius: var(--nx-radius); color: var(--nx-text); }
.nxs-banner[data-tone="critical"] { border-inline-start-color: var(--nx-critical); }
.nxs-banner[data-tone="positive"] { border-inline-start-color: var(--nx-positive); }
.nxs-status { display: inline-flex; align-items: center; gap: 8px; color: var(--nx-text-2); }
.nxs-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--nx-accent); }

/* 8. Lists */
.nxs-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--nx-line); }
.nxs-rows > li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--nx-line); }
.nxs-rows a { color: var(--nx-text) !important; }
.nxs-divider { display: flex; align-items: center; gap: 12px; margin: 24px 0; color: var(--nx-text-3); font-size: 13px; }
.nxs-divider::before, .nxs-divider::after { content: ""; flex: 1; height: 1px; background: var(--nx-line); }
.nxs details > summary { cursor: pointer; color: var(--nx-text-2); }

/* 9. Footer */
.nxs-foot { border-top: 1px solid var(--nx-line); }
.nxs-foot-in { max-width: 1200px; margin: 0 auto; padding: 20px 24px 28px; display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; justify-content: space-between; font: 400 12px/1.6 var(--nx-mono); color: var(--nx-text-3); }
.nxs-foot-in p { margin: 0; }
.nxs-foot ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 20px; }
.nxs-foot a { color: var(--nx-text-2) !important; }

/* 10. Right to left and Arabic script: no letter-spacing, no uppercase */
[dir="rtl"] .nxs-eyebrow, [dir="rtl"] .nxs-service, :lang(ar) .nxs-eyebrow, :lang(fa) .nxs-eyebrow, :lang(ckb) .nxs-eyebrow, :lang(ur) .nxs-eyebrow { letter-spacing: 0; text-transform: none; }
.nxs bdi { unicode-bidi: isolate; }

@media (max-width: 640px) {
  .nxs-bar-in { padding: 10px 16px; gap: 8px 16px; }
  .nxs-nav { margin-inline-start: 0; width: 100%; }
  .nxs-net { max-width: 26ch; }
  .nxs-main { padding: 32px 16px 56px; }
  .nxs-card { padding: 22px 16px; }
  .nxs-foot-in { padding: 18px 16px 24px; }
}
@media (prefers-reduced-motion: reduce) { .nxs * { transition: none !important; animation: none !important; } }
