/* Nexus Translate: the site editor (0.9.31). The language picker and the editor drawer only exist once the script adds
   them, over the page (fixed), so the page never shifts. Redesign 2026-11-11 (owner: translating in place must feel part
   of the console): the console's language. Ruled rows instead of boxes, the page's texts numbered, states as shape and
   word, IBM Plex Mono for counts and labels, square controls, no shadow, glow or gradient; the network's accent
   (--nx-accent) only for signals (progress, the current text, focus). Every control sets its own colours, font, case and
   spacing, and the properties a network theme's button and link rules override live are marked !important, scoped to
   .nxtr-ui. Dark by default, light tuned; logical properties, so a right-to-left page mirrors; Arabic script in
   Vazirmatn with no letter-spacing; 44px targets; visible focus; no web font, no outside asset. */
.nxtr-ui {
  --ux-bg: var(--nx-bg-canvas, #000000); --ux-panel: var(--nx-bg-surface, #0a0a0a); --ux-hover: var(--nx-bg-hover, #1a1a1a);
  --ux-line: var(--nx-border-default, #262626); --ux-line2: var(--nx-border-strong, #3d3d3d);
  --ux-ink: var(--nx-text-primary, #f5f5f5); --ux-mute: var(--nx-text-muted, #a3a3a3); --ux-faint: color-mix(in srgb, var(--ux-mute) 72%, var(--ux-bg));
  --ux-sig: var(--nx-accent, #5b9bff); --ux-sig-soft: color-mix(in srgb, var(--ux-sig) 58%, var(--ux-bg)); --ux-focus: var(--nx-focus, var(--ux-sig));
  --ux-ok: var(--nx-success, #3fb950); --ux-err: var(--nx-danger, #ff6b6b); --ux-warn: var(--nx-warning, #f0b429);
  --ux-sans: var(--nx-font-sans, "IBM Plex Sans"), "Vazirmatn", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ux-mono: var(--nx-font-mono, "IBM Plex Mono"), ui-monospace, "SFMono-Regular", Consolas, monospace;
  color-scheme: dark;
}
:root[data-theme="light"] .nxtr-ui, html.light-mode .nxtr-ui {
  --ux-bg: var(--nx-bg-canvas, #fafafa); --ux-panel: var(--nx-bg-surface, #ffffff); --ux-hover: var(--nx-bg-hover, #ececec);
  --ux-line: var(--nx-border-default, #e2e2e2); --ux-line2: var(--nx-border-strong, #bdbdbd);
  --ux-ink: var(--nx-text-primary, #0a0a0a); --ux-mute: var(--nx-text-muted, #575757); --ux-sig: var(--nx-accent, #1f63e6);
  --ux-ok: var(--nx-success, #067647); --ux-err: var(--nx-danger, #b42318); --ux-warn: var(--nx-warning, #b54708); color-scheme: light;
}
@media (prefers-color-scheme: light) {
  :root[data-nx-default="system"]:not([data-theme]) .nxtr-ui {
    --ux-bg: var(--nx-bg-canvas, #fafafa); --ux-panel: var(--nx-bg-surface, #ffffff); --ux-hover: var(--nx-bg-hover, #ececec);
    --ux-line: var(--nx-border-default, #e2e2e2); --ux-line2: var(--nx-border-strong, #bdbdbd);
    --ux-ink: var(--nx-text-primary, #0a0a0a); --ux-mute: var(--nx-text-muted, #575757); --ux-sig: var(--nx-accent, #1f63e6);
    --ux-ok: var(--nx-success, #067647); --ux-err: var(--nx-danger, #b42318); --ux-warn: var(--nx-warning, #b54708); color-scheme: light;
  }
}
.nxtr-ui, .nxtr-ui * { box-sizing: border-box; }
.nxtr-ui [hidden] { display: none !important; }
.nxtr-ui .nxtr-sr { position: absolute !important; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.nxtr-ui .nxtr-hp { position: absolute; inset-inline-start: -9999px; inline-size: 1px; block-size: 1px; overflow: hidden; }
.nxtr-ui :focus-visible { outline: 2px solid var(--ux-focus) !important; outline-offset: 2px; box-shadow: none !important; }
.nxtr-ui :where(h2, h3, p, ul, ol, dl, dd, fieldset, legend, label) { margin: 0; padding: 0; letter-spacing: 0 !important; text-transform: none !important; font-family: inherit; }
.nxtr-ui :is(ul, ol) { list-style: none; }
.nxtr-ui :is(h2, h3) { color: var(--ux-ink) !important; font-family: var(--ux-sans) !important; line-height: 1.25; background: none; border: 0; }
.nxtr-ui :is(:lang(ar), :lang(fa), :lang(ckb), :lang(ur), :lang(ps), :lang(sdh), :lang(lki), :lang(glk), :lang(mzn)) { font-family: "Vazirmatn", var(--ux-sans); letter-spacing: 0 !important; }
.nxtr-ui a { color: var(--ux-ink) !important; background: none !important; text-decoration: underline !important; text-decoration-color: var(--ux-line2) !important; text-underline-offset: 3px; letter-spacing: 0 !important; text-transform: none !important; }
.nxtr-ui a:hover { text-decoration-color: var(--ux-sig) !important; }

/* controls: square, explicit colours, never the theme's */
.nxtr-ui .nxtr-btn44 { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-block-size: 40px; min-inline-size: 40px; margin: 0; padding-block: .4rem; padding-inline: .85rem; border: 1px solid var(--ux-line2) !important; border-radius: 0; background: transparent !important; box-shadow: none !important; color: var(--ux-ink) !important; font: 500 .88rem/1.15 var(--ux-sans) !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important; cursor: pointer; }
.nxtr-ui .nxtr-btn44:hover { border-color: var(--ux-ink) !important; background: var(--ux-hover) !important; }
.nxtr-ui .nxtr-btn44:disabled { opacity: .45; cursor: default; }
.nxtr-ui .nxtr-btn44:disabled:hover { border-color: var(--ux-line2) !important; background: transparent !important; }
.nxtr-pop .nxtr-pop-go, .nxtr-ed .nxtr-send, .nxtr-ui .nxtr-btn44.nxtr-send { border-color: var(--ux-ink) !important; background: var(--ux-ink) !important; color: var(--ux-bg) !important; font-weight: 600 !important; }
.nxtr-ui .nxtr-btn44.nxtr-send:hover, .nxtr-pop .nxtr-pop-go:hover { background: color-mix(in srgb, var(--ux-ink) 84%, var(--ux-bg)) !important; }
.nxtr-ui :is(input[type="search"], input[type="text"], textarea) { display: block; inline-size: 100%; min-block-size: 44px; margin: 0; padding: .55rem .7rem; border: 1px solid var(--ux-line2) !important; border-radius: 0; background: var(--ux-panel) !important; box-shadow: none !important; color: var(--ux-ink) !important; font: 400 .95rem/1.45 var(--ux-sans) !important; letter-spacing: 0 !important; }
.nxtr-ui :is(input[type="search"], input[type="text"], textarea):focus { border-color: var(--ux-sig) !important; outline: 0; }
.nxtr-ui ::placeholder { color: var(--ux-faint); opacity: 1; }

/* the language picker: one ruled list, the chosen row marked at its inline start */
.nxtr-pop { position: fixed; z-index: 100001; inline-size: min(22rem, calc(100vw - 2rem)); max-block-size: min(32rem, calc(100vh - 2rem)); display: flex; flex-direction: column; padding: .9rem; background: var(--ux-bg); color: var(--ux-ink); border: 1px solid var(--ux-line2); border-radius: 0; box-shadow: none; font: 400 .95rem/1.45 var(--ux-sans); }
.nxtr-pop--sheet .nxtr-pop-langs { max-block-size: calc(80vh - 7rem); }
.nxtr-pop--sheet { inset-inline: 0; inset-block-end: 0; inline-size: 100%; max-block-size: 80vh; border-inline: 0; border-block-end: 0; border-end-start-radius: 0; border-end-end-radius: 0; }
.nxtr-pop-form { display: flex; flex: 1 1 auto; flex-direction: column; min-block-size: 0; gap: .75rem; }
.nxtr-pop-langs { margin: 0; padding: 0; border: 0; overflow: auto; flex: 1 1 auto; min-block-size: 0; max-block-size: min(24rem, calc(100vh - 9rem)); display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); align-content: start; column-gap: .9rem; }
.nxtr-pop-title { grid-column: 1 / -1; float: inline-start; inline-size: 100%; padding-block: 0 .55rem; border-block-end: 1px solid color-mix(in srgb, var(--ux-ink) 55%, var(--ux-bg)); font: 600 1rem/1.3 var(--ux-sans); color: var(--ux-ink); }
.nxtr-pop-lang { position: relative; display: flex; align-items: center; gap: .6rem; min-block-size: 44px; padding-inline: .7rem; border: 0; border-block-end: 1px solid var(--ux-line); border-inline-start: 2px solid transparent; border-radius: 0; cursor: pointer; }
.nxtr-pop-lang:hover { background: var(--ux-hover); }
.nxtr-pop-lang:has(input:checked) { border-inline-start-color: var(--ux-sig); background: var(--ux-panel); box-shadow: none; }
.nxtr-pop-lang input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; margin: 0; }
.nxtr-pop-lang:has(input:focus-visible) { outline: 2px solid var(--ux-focus); outline-offset: -2px; }
.nxtr-pop-name { flex: 0 1 auto; min-inline-size: 0; font-weight: 600; overflow-wrap: anywhere; }
.nxtr-pop-name:lang(ar), .nxtr-pop-name:lang(fa), .nxtr-pop-name:lang(ckb), .nxtr-pop-name:lang(ur) { font-family: Vazirmatn, var(--ux-sans); }
.nxtr-pop-code { margin-inline-start: auto; font: .72rem var(--ux-mono); color: var(--ux-faint); }
.nxtr-pop-actions { display: flex; gap: .5rem; }
.nxtr-pop-go { flex: 1; }

/* the editor: a drawer at the inline end, full height; the whole screen on a phone */
html.nxtr-ed-open { overflow: hidden; }
.nxtr-ed-shade { position: fixed; inset: 0; z-index: 100000; --nxtr-ed-scrim: color-mix(in srgb, #000 45%, transparent); background: var(--nxtr-ed-scrim); }
.nxtr-ed { position: fixed; z-index: 100001; inset-block: 0; inset-inline-end: 0; inline-size: min(46rem, 100vw); display: flex; flex-direction: column; background: var(--ux-bg); color: var(--ux-ink); border-inline-start: 1px solid var(--ux-line2); box-shadow: none; font: 400 .95rem/1.5 var(--ux-sans); counter-reset: nxed; }
.nxtr-ed-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-block: .7rem; padding-inline: 1.1rem; border-block-end: 1px solid color-mix(in srgb, var(--ux-ink) 55%, var(--ux-bg)); }
.nxtr-ed-title { margin: 0; font-size: 1.05rem !important; font-weight: 600; }
.nxtr-ui .nxtr-ed-title:focus, .nxtr-ui .nxtr-ed-title:focus-visible { outline: 0 !important; } /* focused by the script for screen readers, not by the keyboard */
.nxtr-ed-title bdi { margin-inline-start: .1rem; }
.nxtr-ed-close { font-size: 1.2rem !important; }
.nxtr-ed-meter { block-size: 3px; margin-inline: 1.1rem; margin-block-start: .9rem; background: var(--ux-line); }
.nxtr-ed-meter-bar { display: block; block-size: 100%; inline-size: 0; background: var(--ux-sig); transition: inline-size .2s ease; }
.nxtr-ed-progress { margin-block: .4rem 0; margin-inline: 1.1rem; font: .76rem var(--ux-mono); color: var(--ux-mute); }
.nxtr-ed-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; padding-block: .75rem; padding-inline: 1.1rem; }
.nxtr-ed-search { flex: 1 1 12rem; inline-size: auto !important; }
/* the filter: a segmented row of three, the radio kept for the keyboard and screen readers */
.nxtr-ed-filter { display: inline-grid; grid-auto-flow: column; gap: 1px; margin: 0; padding: 1px; border: 0; background: var(--ux-line2); }
.nxtr-ed-chip { position: relative; display: inline-flex; align-items: center; min-block-size: 42px; padding-inline: .8rem; border: 0; border-radius: 0; background: var(--ux-bg); color: var(--ux-mute); font-size: .86rem; cursor: pointer; }
.nxtr-ed-chip:hover { color: var(--ux-ink); }
.nxtr-ed-chip input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; margin: 0; }
.nxtr-ed-chip:has(input:checked) { color: var(--ux-ink); background: var(--ux-panel); box-shadow: inset 0 -2px 0 var(--ux-sig); }
.nxtr-ed-chip:has(input:focus-visible) { outline: 2px solid var(--ux-focus); outline-offset: -2px; }
/* the page's texts: a numbered ledger, the state as shape and word */
.nxtr-ed-list { margin: 0; padding: 0; max-block-size: 32vh; overflow: auto; border-block: 1px solid var(--ux-line); }
.nxtr-ed-list > li { counter-increment: nxed; border-block-end: 1px solid var(--ux-line); }
.nxtr-ed-list > li:last-child { border-block-end: 0; }
.nxtr-ed-item { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr) auto; align-items: center; gap: .7rem; inline-size: 100%; min-block-size: 44px; margin: 0; padding-block: .45rem; padding-inline: .9rem 1.1rem; border: 0 !important; border-inline-start: 2px solid transparent !important; border-radius: 0; background: none !important; box-shadow: none !important; color: var(--ux-ink) !important; font: 400 .9rem/1.35 var(--ux-sans) !important; letter-spacing: 0 !important; text-transform: none !important; text-align: start; cursor: pointer; }
.nxtr-ed-item::before { content: counter(nxed, decimal-leading-zero); font: .72rem var(--ux-mono); color: var(--ux-faint); }
.nxtr-ed-item:hover { background: var(--ux-hover) !important; }
.nxtr-ed-item[aria-current="true"] { border-inline-start-color: var(--ux-sig) !important; background: var(--ux-panel) !important; }
.nxtr-ed-item[aria-current="true"]::before { color: var(--ux-sig); }
.nxtr-ed-item-src { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nxtr-ed-badge { display: inline-flex; align-items: center; gap: .4rem; flex: none; max-inline-size: 14rem; padding: 0; border: 0; border-radius: 0; font: .76rem var(--ux-sans); color: var(--ux-mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nxtr-ed-badge::before { content: ""; flex: none; inline-size: 7px; block-size: 7px; background: var(--ux-sig-soft); }
.nxtr-ed-item--missing .nxtr-ed-badge::before, .nxtr-ed-badge--missing::before { background: none; border: 1px solid var(--ux-line2); }
.nxtr-ed-item--reviewed .nxtr-ed-badge::before, .nxtr-ed-badge--reviewed::before { background: var(--ux-sig); }
.nxtr-ed-empty { padding-block: .9rem; padding-inline: 1.1rem; color: var(--ux-mute); }
/* the chosen text */
.nxtr-ed-detail { flex: 1; overflow: auto; padding-block: .9rem 1.1rem; padding-inline: 1.1rem; }
.nxtr-ed-pos { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding-block-end: .5rem; border-block-end: 1px solid var(--ux-line); font: .76rem var(--ux-mono); color: var(--ux-mute); }
.nxtr-ui .nxtr-ed-h { margin-block: .9rem .3rem !important; font: 400 .72rem/1.3 var(--ux-mono) !important; color: var(--ux-faint) !important; }
.nxtr-ed-source, .nxtr-ed-current { margin: 0; padding-block: .15rem; padding-inline: .7rem; border-inline-start: 2px solid var(--ux-line2); background: none; border-radius: 0; overflow-wrap: anywhere; }
.nxtr-ed-source { font-size: 1rem; color: var(--ux-ink); }
.nxtr-ed-current { color: var(--ux-mute); }
.nxtr-ed-form label { display: block; margin-block: .9rem .3rem; font: .72rem/1.3 var(--ux-mono); color: var(--ux-faint); }
.nxtr-ed-form textarea { min-block-size: 6.5rem; resize: vertical; font-size: 1rem !important; }
.nxtr-ed-form textarea:lang(ar), .nxtr-ed-form textarea:lang(fa), .nxtr-ed-form textarea:lang(ckb), .nxtr-ed-form textarea:lang(ur) { font-family: Vazirmatn, var(--ux-sans) !important; }
.nxtr-ed-checks { margin-block: .4rem 0; display: grid; gap: .2rem; font-size: .84rem; color: var(--ux-warn); }
.nxtr-ed-checks li { display: flex; align-items: baseline; gap: .45rem; }
.nxtr-ed-checks li::before { content: ""; flex: none; inline-size: 7px; block-size: 7px; border: 1px solid var(--ux-warn); }
.nxtr-ed-checks:empty { display: none; }
.nxtr-ed-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-block-start: .9rem; }
.nxtr-ed-actions .nxtr-send { margin-inline-start: auto; }
/* the shared memory, the glossary and the other suggestions: ruled rows */
.nxtr-ed-more { margin-block-start: .4rem; }
.nxtr-ed-memory { display: grid; border-block-start: 1px solid var(--ux-line); }
.nxtr-ed-memory li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-block: .45rem; border: 0; border-block-end: 1px solid var(--ux-line); border-radius: 0; }
.nxtr-ed-use { min-block-size: 34px !important; padding-inline: .6rem !important; font-size: .8rem !important; }
.nxtr-ed .nxtr-ip-glossary { display: grid; grid-template-columns: minmax(0, max-content) minmax(0, 1fr); gap: 0 1rem; border-block-start: 1px solid var(--ux-line); }
.nxtr-ed .nxtr-ip-glossary :is(dt, dd) { margin: 0; padding-block: .4rem; border-block-end: 1px dotted var(--ux-line2); }
.nxtr-ed .nxtr-ip-glossary dt { color: var(--ux-mute); }
.nxtr-ed .nxtr-ip-list { display: grid; border-block-start: 1px solid var(--ux-line); }
.nxtr-ed .nxtr-ip-list .nxtr-sugg { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .3rem .75rem; margin: 0; padding-block: .45rem; padding-inline: 0; border: 0; border-block-end: 1px solid var(--ux-line); border-radius: 0; }
.nxtr-ed .nxtr-ip-list .nxtr-sugg p { margin: 0; overflow-wrap: anywhere; }
.nxtr-ed .nxtr-votes { font: .76rem var(--ux-mono); color: var(--ux-mute); white-space: nowrap; }
.nxtr-ed .nxtr-vote { font-family: var(--ux-mono) !important; }
.nxtr-ed .nxtr-state { color: var(--ux-mute); font-size: .86rem; }
.nxtr-ed-appeal { margin-block: .6rem; padding-block: .6rem; padding-inline: .7rem 0; border: 0; border-inline-start: 2px solid var(--ux-err); border-radius: 0; }
.nxtr-ed-appeal textarea { margin-block: .4rem; }
/* the foot: the status and send all */
.nxtr-ed-foot { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; padding-block: .7rem; padding-inline: 1.1rem; border-block-start: 1px solid color-mix(in srgb, var(--ux-ink) 55%, var(--ux-bg)); }
.nxtr-ed-status { flex: 1 1 12rem; margin: 0; font-size: .88rem; color: var(--ux-mute); }
.nxtr-ed-status.err { color: var(--ux-err); }
.nxtr-ed-status.ok { color: var(--ux-ok); }
.nxtr-ed-credit { flex-basis: 100%; margin: 0; }
.nxtr-ed-credit .nxtr-msg { margin: 0; }
.nxtr-ed-credit a { display: inline-flex; align-items: center; min-block-size: 44px; }
/* the account row (0.9.34): under the title, square controls, no box; at the inline end, so a right-to-left page mirrors it */
.nxtr-ed-acct { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .4rem; padding-block: .5rem 0; padding-inline: 1.1rem; border: 0; background: none; font-size: .86rem; }
.nxtr-ed-acct[hidden] { display: none; }
.nxtr-ed-acct-name { margin-inline-end: auto; font-weight: 600; overflow-wrap: anywhere; }
.nxtr-ed-acct a { text-decoration: none; }
.nxtr-ed-acct :is(a, .nxtr-btn44) { min-block-size: 32px !important; padding-inline: .6rem !important; font-size: .8rem !important; }
.nxtr-ed-need { margin: 0; font-weight: 600; }
@media (max-width: 600px) {
  .nxtr-ed-head, .nxtr-ed-tools, .nxtr-ed-detail, .nxtr-ed-foot, .nxtr-ed-acct { padding-inline: 16px; }
  .nxtr-ed-meter, .nxtr-ed-progress { margin-inline: 16px; }
  .nxtr-ed-item { padding-inline: 14px 16px; grid-template-columns: 1.9rem minmax(0, 1fr); }
  .nxtr-ed-item .nxtr-ed-badge { grid-column: 2; }
  .nxtr-ed-filter { inline-size: 100%; grid-auto-columns: 1fr; }
  .nxtr-ed-chip { justify-content: center; }
  .nxtr-ed-actions .nxtr-send { flex: 1 1 100%; margin-inline-start: 0; }
}
@media (prefers-reduced-motion: reduce) { .nxtr-ed-meter-bar { transition: none; } }
@media (forced-colors: active) { .nxtr-ed, .nxtr-pop { border: 1px solid CanvasText; } .nxtr-ed-meter-bar, .nxtr-ed-badge::before { background: Highlight; forced-color-adjust: none; } }
