/* AVIDUS shell (P1.0.4.4 step 1, approved mock 7): header, rail, bottom nav, Menu and Profile.
   Everything here is scoped to .nx, so the screens not yet moved to the new design keep style.css untouched.
   Styles Terminal / Neon / Bloomed and RU / EN are chosen in Profile and remembered (shell.js). Owner 5 Nov 2026: «ок по Neon» - Neon
   replaces Obsidian (approved mock tasks/P7-design/T60-X/UI.4/neon/, tokens of its preview.css); a stored «obsidian» becomes «neon».
   Color roles: amber - actions, brand, current value · cyan - signals, entry · teal (--green) - live, favourable
   · red - no link, unfavourable · violet - analytics · magenta - owner / private · warn - pause, attention. */
.nx {
  --bg: #0a0a0c; --surface: #131316; --surface-2: #1a1a1f; --border: #26262d; --border-2: #34343d;
  --fg: #e8e8ed; --fg-2: #8a8a93; --fg-3: #6b6b74;
  --amber: #f5ab21; --cyan: #54c7ed; --green: #42dfae; --red: #ff6675; --violet: #b388ff; --magenta: #ff2da6; --warn: #d9b86c; --lime: #42dfae;
  --nx-font: "JetBrains Mono", "Courier New", monospace; --nx-mono: var(--nx-font);
  --nx-radius: 8px; --nx-radius-sm: 5px; --nx-glow: 0 0 12px rgba(255,176,32,.4);
  font-family: var(--nx-font); color: var(--fg); text-shadow: none;
}
html[data-theme="neon"] .nx {
  --bg: #0e1020; --surface: #151830; --surface-2: #202541; --border: #2f3347; --border-2: #444b69;
  --fg: #eef1ff; --fg-2: #aab2cf; --fg-3: #969fc0;
  --amber: #c79bff; --cyan: #00e5ff; --magenta: #ff4dd8; --green: #3dffb5; --red: #ff4d7d; --violet: #a99cff; --lime: #3dffb5; --warn: #f1bd78;
  --nx-font: Bahnschrift, "Segoe UI", Arial, sans-serif; --nx-mono: "Cascadia Mono", Consolas, monospace;
  --nx-radius: 14px; --nx-radius-sm: 9px; --nx-glow: none;
}
html[data-theme="bloomed"] .nx {
  --bg: #e3e3e3; --surface: #ececec; --surface-2: #d3d3d3; --border: #c4c4c4; --border-2: #333;
  --fg: #333; --fg-2: #555; --fg-3: #6f6f6f;
  --amber: #c73854; --cyan: #2a848c; --magenta: #c73854; --green: #59804d; --red: #c73854; --violet: #6265b3; --lime: #a6bf80;
  --nx-font: Inter, "Segoe UI", Arial, sans-serif; --nx-mono: Inter, "Segoe UI", Arial, sans-serif;
  --nx-radius: 0; --nx-radius-sm: 0; --nx-glow: none;
}
.nx a { color: inherit; text-decoration: none; cursor: pointer; }
.nx button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
svg.nx-i { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.nx-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ══ HEADER: brand, link status, clock, profile ══ */
.topbar.nx, body.tg-app .topbar.nx { background: var(--surface); border-bottom: 1px solid var(--border); min-height: 46px; padding: 0 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: nowrap; }
.nx-brand b { font-weight: 800; letter-spacing: .15em; color: var(--amber); text-shadow: var(--nx-glow); font-size: 15px; }
.topbar.nx .module-heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.nx-st { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.nx-status { color: var(--fg-2); font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; display: flex; align-items: center; gap: 8px; }
.nx-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 6px rgba(66,223,174,.6); animation: nx-blip 2s ease-in-out infinite; }
.nx-dot.err { background: var(--red); box-shadow: 0 0 8px var(--red); animation: none; }
.nx-dot.wait { background: var(--fg-3); box-shadow: none; animation: none; }
@keyframes nx-blip { 0%,100% { opacity: .7; } 50% { opacity: 1; } }
@keyframes nx-pulse { 50% { opacity: .5; } }
.nx-time { color: var(--amber); font-variant-numeric: tabular-nums; font-size: 11px; letter-spacing: .06em; }
.nx-avatar { width: 26px; height: 26px; border: 1px solid var(--border-2); background: var(--surface-2); display: grid; place-items: center; font-size: 11px; font-weight: 800; color: var(--amber); cursor: pointer; }
.nx-avatar:hover, .nx-avatar:focus-visible { border-color: var(--amber); outline: none; }

/* ══ DESKTOP RAIL ══ */
.desktop-rail.nx { background: #0d0d10; border-right: 1px solid var(--border); padding: 18px 12px 14px; }
.desktop-rail.nx .nx-brand { padding: 3px 10px 22px; display: block; }
.desktop-rail.nx .nx-brand b { font-size: 20px; }
.nx-rail-nav { display: grid; gap: 5px; }
.nx-rail-nav a { min-height: 40px; display: flex; align-items: center; gap: 11px; padding: 0 11px; border-radius: var(--nx-radius-sm); color: var(--fg-2); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; }
.nx-rail-nav a:hover { color: var(--fg); background: var(--surface); }
.nx-rail-nav a.active { color: var(--amber); background: rgba(255,176,32,.09); box-shadow: inset 2px 0 var(--amber); }
.nx-rail-nav a .nx-tag { margin-left: auto; }
.nx-rail-util { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--border); }

/* ══ BOTTOM NAV (phone) ══ */
.bottom-nav.nx { background: var(--surface); border-top: 1px solid var(--border); }
.bottom-nav.nx { min-height: 0; }
.bottom-nav.nx .nx-bn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-width: 0; min-height: 42px; padding: 4px 2px; font-size: 8px; letter-spacing: .08em; color: var(--fg-2); text-transform: uppercase; border-top: 0; }
.nx-bn svg.nx-i { width: 15px; height: 15px; }
.nx-bn span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bottom-nav.nx .nx-bn.active { color: var(--amber); text-shadow: 0 0 8px rgba(255,176,32,.35); background: transparent; }

/* ══ MENU ══ */
#view-home.nx { background: var(--bg); }
body.route-home .main { padding-top: 0; }
.nx-menu { padding: 14px 12px 24px; display: grid; gap: 12px; max-width: 600px; width: 100%; margin: 0 auto; align-content: start; }
.nx-panel { background: var(--bg); border: 1px solid var(--border); border-radius: var(--nx-radius); overflow: hidden; }
.nx-panel > h3 { margin: 0; padding: 7px 10px; min-height: 36px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--border); background: var(--surface-2); font: inherit; cursor: pointer; user-select: none; }
.nx-panel > h3 > svg.nx-i { color: var(--amber); width: 15px; height: 15px; }
.nx-panel h3 .nx-l { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.nx-panel h3 .nx-t { display: flex; align-items: center; gap: 8px; }
.nx-panel h3 .nx-sub { font-size: 10px; color: var(--fg-2); letter-spacing: .1em; text-transform: uppercase; }
.nx-panel h3 .nx-r { margin-left: auto; display: flex; align-items: center; gap: 8px; color: var(--fg-2); font-size: 10px; letter-spacing: .1em; white-space: nowrap; flex: none; }
.nx-panel h3 .nx-r .nx-v { color: var(--fg); font-size: 11px; letter-spacing: .04em; font-family: var(--nx-mono); font-variant-numeric: tabular-nums; }
.nx-fch { width: 14px !important; height: 14px !important; color: var(--fg-3) !important; transition: transform .15s; transform: rotate(90deg); }
.nx-panel.fold .nx-fch { transform: rotate(0); }
.nx-panel.fold > :not(h3) { display: none !important; }
.nx-panel.fold > h3 { border-bottom: 0; }
.nx-src { font-weight: 700; padding: 2px 7px; letter-spacing: .16em; font-size: 9.5px; text-transform: uppercase; }
.nx-src-sig { background: rgba(84,199,237,.15); color: var(--cyan); }
.nx-src-mar { background: rgba(255,176,32,.15); color: var(--amber); }
.nx-src-ana { background: rgba(179,136,255,.15); color: var(--violet); }
.nx-src-own { background: rgba(255,45,166,.15); color: var(--magenta); }
.nx-row { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-bottom: 1px solid var(--border); min-height: 48px; background: var(--surface); transition: background .15s; }
.nx-row:last-child { border-bottom: 0; }
a.nx-row:hover, a.nx-row:focus-visible { background: var(--surface-2); outline: none; }
a.nx-row:hover .nx-k { color: var(--fg); }
.nx-k { flex: 1; min-width: 0; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-2); }
.nx-k small { display: block; color: var(--fg-3); font-size: 11px; margin-top: 3px; letter-spacing: .02em; text-transform: none; }
.nx-k .warn { color: var(--warn); } .nx-k .bad { color: var(--red); }
.nx-val { color: var(--fg); font-size: 12px; font-family: var(--nx-mono); font-variant-numeric: tabular-nums; letter-spacing: .04em; white-space: nowrap; }
.nx-val.acc { color: var(--cyan); font-weight: 700; }
.nx-row .nx-chev { color: var(--fg-3); width: 14px; height: 14px; }
.nx-row .nx-ico { color: var(--fg-3); }
.nx-row.dim .nx-k, .nx-row.dim .nx-ico { color: var(--fg-3); }
/* Owner accordion row (owner 2026-11-03): FIBO Desk / Trend / Posts and future desks */
.nx-row.nx-grp { width: 100%; text-align: left; font: inherit; color: inherit; border: 0; border-bottom: 1px solid var(--border); cursor: pointer; }
.nx-row.nx-grp .nx-chev { transition: transform .15s; }
.nx-row.nx-grp.open .nx-chev { transform: rotate(90deg); }
.nx-row.nx-grp:focus-visible { outline: 1px solid var(--amber); outline-offset: -1px; }
.nx-grp-b { border-bottom: 1px solid var(--border); }
.nx-grp-b .nx-row { padding-left: 34px; background: var(--surface-2); }
.nx-grp-b .nx-row:last-child { border-bottom: 0; }
.nx-tag { font-size: 9px; padding: 2px 6px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; white-space: nowrap; }
.nx-tag.live { background: rgba(66,223,174,.18); color: var(--green); border: 1px solid rgba(66,223,174,.35); }
.nx-tag.pause { background: var(--warn); color: #000; }
.nx-tag.err { background: var(--red); color: #fff; }
.nx-tag.off { background: var(--surface-2); color: var(--fg-2); border: 1px solid var(--border-2); }
.nx-tag.owner { background: rgba(255,45,166,.15); color: var(--magenta); }
.nx-tag.hot { background: var(--magenta); color: #fff; }
.nx-pbar { height: 6px; background: var(--surface-2); margin: 10px 12px; }
.nx-pbar i { display: block; height: 100%; width: 0; background: var(--amber); transition: width .3s; }
.nx-updated { color: var(--fg-3); font-size: 10.5px; letter-spacing: .08em; text-align: right; padding: 0 2px; }

/* ══ PROFILE (sheet over the app) ══ */
.nx-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.6); z-index: 10001; }
.nx-profile { display: none; position: fixed; inset: 0; z-index: 10002; background: var(--bg); overflow: auto; color: var(--fg); }
.nx-profile.open, .nx-backdrop.open { display: block; }
.nx-ph { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 44px; padding: 7px 12px; font-size: 10px; letter-spacing: .25em; color: var(--amber); text-transform: uppercase; border-bottom: 1px solid var(--border); background: var(--surface-2); }
.nx-ph button { color: var(--amber); font-size: 11px; letter-spacing: .12em; padding: 6px 4px; }
.nx-profile-body { padding: 12px; display: flex; flex-direction: column; gap: 12px; }
.nx-who { display: flex; align-items: center; gap: 12px; padding: 12px 14px; }
.nx-who .nx-avatar { width: 38px; height: 38px; font-size: 15px; cursor: default; }
.nx-who b { display: block; font-size: 14px; letter-spacing: .04em; }
.nx-who small { color: var(--fg-2); font-size: 11px; letter-spacing: .04em; }
.nx-who .nx-tag { margin-left: auto; }
.nx-panel-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 36px; padding: 7px 12px; font-size: 10px; letter-spacing: .25em; color: var(--amber); text-transform: uppercase; border-bottom: 1px solid var(--border); background: var(--surface-2); }
.nx-prow { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--border); min-height: 46px; background: var(--bg); font-size: 11.5px; letter-spacing: .1em; }
.nx-panel-h + .nx-prow { border-top: 0; }
.nx-prow .nx-lbl { flex: 1; min-width: 0; text-transform: uppercase; }
.nx-prow .nx-lbl small { display: block; color: var(--fg-3); font-size: 11px; text-transform: none; margin-top: 2px; letter-spacing: .02em; }
a.nx-prow:hover { background: var(--surface); }
.nx-seg { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--border-2); flex: none; }
.nx-seg button { padding: 6px 9px; font-size: 10px; letter-spacing: .14em; color: var(--fg-2); }
.nx-seg button + button { border-left: 1px solid var(--border-2); }
.nx-seg button.on { background: var(--amber); color: #000; font-weight: 800; }
.nx-note { color: var(--fg-3); font-size: 11px; line-height: 1.5; padding: 0 2px; }

[data-nx-role="member"] .nx-owner { display: none !important; }

/* ══ DESKTOP ══ */
@media (min-width: 801px) {
  .topbar.nx, body.tg-app .topbar.nx { min-height: 58px; padding: 0 24px; background: rgba(19,19,22,.96); }
  .topbar.nx .nx-brand { display: none; }
  .nx-menu { max-width: 1080px; grid-template-columns: 1fr 1fr; padding: 16px 24px 30px; align-items: start; }
  .nx-updated { grid-column: 1 / -1; }
  .nx-profile { inset: auto; top: 90px; left: 50%; transform: translateX(-50%); width: 520px; max-height: calc(100vh - 130px); border: 1px solid var(--border-2); box-shadow: 0 0 0 1px #000, 0 20px 40px rgba(0,0,0,.5); }
}
@media (max-width: 800px) {
  .nx-st { gap: 10px; }
  .bottom-nav.nx { grid-template-columns: repeat(var(--nx-bn-count, 4), minmax(0,1fr)); }
}
@media (max-width: 359px) {
  .nx-status { letter-spacing: .1em; }
  .bottom-nav.nx .nx-bn, html[data-theme] .bottom-nav.nx .nx-bn { font-size: 7.5px; letter-spacing: 0; padding-left: 0; padding-right: 0; }
}

/* The terminal scanline/vignette overlay of style.css belongs to Terminal only. */
html[data-theme="neon"] body::before, html[data-theme="neon"] body::after, html[data-theme="bloomed"] body::before, html[data-theme="bloomed"] body::after { display: none; }

/* ══ NEON (replaces Obsidian, owner 5 Nov 2026) ══ */
html[data-theme="neon"] .nx-status, html[data-theme="neon"] .nx-k, html[data-theme="neon"] .nx-bn, html[data-theme="neon"] .nx-rail-nav a, html[data-theme="neon"] .nx-prow .nx-lbl { letter-spacing: .06em; font-weight: 600; }
html[data-theme="neon"] .nx-panel-h, html[data-theme="neon"] .nx-ph { letter-spacing: .14em; }
html[data-theme="neon"] .nx-tag, html[data-theme="neon"] .nx-src { border-radius: 999px; letter-spacing: .1em; }
html[data-theme="neon"] .nx-seg, html[data-theme="neon"] .nx-avatar { border-radius: var(--nx-radius-sm); }
html[data-theme="neon"] .nx-tag.live, html[data-theme="neon"] .nx-seg button.on { color: #0e1020; }
html[data-theme="neon"] .desktop-rail.nx { background: var(--bg); }
html[data-theme="neon"] .nx-time { color: #f1bd78; }
html[data-theme="neon"] .topbar.nx, html[data-theme="neon"] .bottom-nav.nx { background: var(--surface); }
html[data-theme="neon"] .nx-rail-nav a.active { background: #302746; box-shadow: inset 2px 0 var(--amber); }
html[data-theme="neon"] .bottom-nav.nx .nx-bn:not(.active) { color: var(--fg-2); background: transparent; text-shadow: none; }
html[data-theme="neon"] .bottom-nav.nx .nx-bn.active { color: var(--amber); background: #302746; text-shadow: none; }
html[data-theme="neon"] .nx-bn.active:before { background: var(--amber); }
html[data-theme="neon"] .hc-node[aria-disabled="false"] text:not([stroke]) { paint-order: stroke; stroke: #151830; stroke-width: 1.5px; stroke-linejoin: round; }

/* ══ BLOOMED ══ */
html[data-theme="bloomed"] .topbar.nx { background: var(--bg); border-bottom: 0; position: relative; }
html[data-theme="bloomed"] .topbar.nx::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: linear-gradient(to right, var(--amber) 38%, var(--bg) 38% calc(38% + 10px), var(--lime) calc(38% + 10px) 70%, var(--bg) 70% calc(70% + 10px), #333 calc(70% + 10px) 100%); }
html[data-theme="bloomed"] .nx-brand b { font: 900 22px/1 Poppins, "Segoe UI Black", "Arial Black", sans-serif; letter-spacing: -.01em; color: #333; }
html[data-theme="bloomed"] .nx-status { font-weight: 800; letter-spacing: 1px; color: #333; }
html[data-theme="bloomed"] .nx-dot { border-radius: 0; box-shadow: none; animation: none; background: var(--lime); }
html[data-theme="bloomed"] .nx-dot.err { background: var(--amber); }
html[data-theme="bloomed"] .nx-time { font-weight: 800; }
html[data-theme="bloomed"] .nx-avatar { background: #333; color: var(--bg); border: 0; }
html[data-theme="bloomed"] .nx-panel { border: 1px solid #333; }
html[data-theme="bloomed"] .nx-panel > h3, html[data-theme="bloomed"] .nx-panel-h { background: var(--surface); border-bottom: 1px solid #333; }
html[data-theme="bloomed"] .nx-src { background: #333 !important; color: var(--bg) !important; font-weight: 800; letter-spacing: 1px; padding: 5px 8px; box-shadow: 5px 0 0 var(--surface), 10px 0 0 var(--amber); margin-right: 12px; }
html[data-theme="bloomed"] .nx-src-sig { box-shadow: 5px 0 0 var(--surface), 10px 0 0 var(--cyan); }
html[data-theme="bloomed"] .nx-src-ana { box-shadow: 5px 0 0 var(--surface), 10px 0 0 var(--violet); }
html[data-theme="bloomed"] .nx-src-mar { box-shadow: 5px 0 0 var(--surface), 10px 0 0 var(--lime); }
html[data-theme="bloomed"] .nx-panel h3 .nx-sub { font-weight: 900; color: #333; letter-spacing: .02em; }
html[data-theme="bloomed"] .nx-row { background: var(--surface); border-bottom: 1px solid var(--surface-2); }
html[data-theme="bloomed"] .nx-k, html[data-theme="bloomed"] .nx-prow .nx-lbl { font-weight: 800; letter-spacing: .02em; font-size: 13px; color: #333; }
html[data-theme="bloomed"] .nx-k small, html[data-theme="bloomed"] .nx-prow .nx-lbl small { font-weight: 400; color: var(--fg-2); }
html[data-theme="bloomed"] .nx-row .nx-ico { color: #333; } html[data-theme="bloomed"] .nx-row .nx-chev { color: var(--amber); }
html[data-theme="bloomed"] .nx-val { color: #333; font-weight: 800; }
html[data-theme="bloomed"] .nx-tag { font-weight: 800; letter-spacing: 1px; padding: 4px 7px; }
html[data-theme="bloomed"] .nx-tag.live { background: var(--lime); color: #333; border: 0; }
html[data-theme="bloomed"] .nx-tag.err, html[data-theme="bloomed"] .nx-tag.hot { background: var(--amber); color: var(--bg); }
html[data-theme="bloomed"] .nx-tag.off { background: transparent; color: #333; border: 1px solid #333; }
html[data-theme="bloomed"] .nx-tag.owner { background: #333; color: var(--bg); }
html[data-theme="bloomed"] .nx-pbar { height: 9px; background: repeating-linear-gradient(-45deg, #333 0 3px, transparent 3px 5px); }
html[data-theme="bloomed"] .nx-seg { border-color: #333; } html[data-theme="bloomed"] .nx-seg button { color: #333; font-weight: 800; letter-spacing: 1px; }
html[data-theme="bloomed"] .nx-seg button + button { border-left-color: #333; } html[data-theme="bloomed"] .nx-seg button.on { background: #333; color: var(--bg); }
html[data-theme="bloomed"] .bottom-nav.nx { background: #333; border-top: 0; }
html[data-theme="bloomed"] .bottom-nav.nx .nx-bn { color: var(--surface-2); font-weight: 800; letter-spacing: 0; } html[data-theme="bloomed"] .bottom-nav.nx .nx-bn.active { color: var(--lime); text-shadow: none; }
html[data-theme="bloomed"] .nx-prow { background: var(--surface); border-top-color: var(--surface-2); }
html[data-theme="bloomed"] .nx-ph button { color: var(--amber); }
@media (min-width: 801px) {
  html[data-theme="bloomed"] .desktop-rail.nx { background: #333; border-right: 0; }
  html[data-theme="bloomed"] .desktop-rail.nx .nx-brand b { color: var(--bg); }
  html[data-theme="bloomed"] .nx-rail-nav a { color: var(--surface-2); font-weight: 800; letter-spacing: 1px; }
  html[data-theme="bloomed"] .nx-rail-nav a:hover { color: var(--lime); background: transparent; }
  html[data-theme="bloomed"] .nx-rail-nav a.active { color: #333; background: var(--lime); box-shadow: none; }
  html[data-theme="bloomed"] .nx-rail-util { border-top-color: #444; }
  html[data-theme="bloomed"] .nx-rail-nav .nx-tag.owner { background: var(--amber); color: var(--bg); }
  html[data-theme="bloomed"] .nx-profile { border: 1px solid #333; box-shadow: 12px 12px 0 var(--lime); }
}
@media (prefers-reduced-motion: reduce) { .nx-dot { animation: none; } .nx-pbar i { transition: none; } }

/* ══ MARATHON (step 2, mock 8) ══ */
.view.nx { background: var(--bg); color: var(--fg); }
body.route-marathon .main { padding-top: 0; }
.module-tabs.nx { background: var(--bg); border-bottom: 1px solid var(--border); padding: 8px 12px; gap: 0; }
.module-tabs.nx[hidden] { display: none; }
.module-tabs.nx a { flex: 1 1 0; min-height: 34px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--border-2); border-radius: 0; margin-left: -1px; color: var(--fg-2); font: 10px var(--nx-font); letter-spacing: .14em; text-transform: uppercase; background: var(--surface); }
.module-tabs.nx a:first-child { border-radius: var(--nx-radius-sm) 0 0 var(--nx-radius-sm); margin-left: 0; }
.module-tabs.nx a:last-child { border-radius: 0 var(--nx-radius-sm) var(--nx-radius-sm) 0; }
.module-tabs.nx a.active { color: var(--amber); background: rgba(255,176,32,.09); border-color: var(--amber); position: relative; z-index: 1; }
.nx-mar .nx-wide { grid-column: 1 / -1; }
.nx-hero { padding: 14px 14px 16px; background: var(--surface); display: grid; gap: 4px; }
.nx-hero:empty { display: none; }
.nx-lbl { font-size: 10px; letter-spacing: .25em; color: var(--fg-3); text-transform: uppercase; }
.nx-bank { font: 800 34px/1.1 var(--nx-mono); letter-spacing: -.01em; color: var(--fg); font-variant-numeric: tabular-nums; }
.nx-bank.dim, .nx-delta.dim { color: var(--fg-3); }
.nx-delta { font: 600 13px var(--nx-mono); color: var(--fg-2); font-variant-numeric: tabular-nums; }
.nx-prog { margin-top: 10px; display: grid; gap: 8px; }
.nx-pct { display: flex; justify-content: space-between; gap: 10px; font-size: 11.5px; color: var(--fg-2); flex-wrap: wrap; }
.nx-pct b { color: var(--amber); }
.nx-scale { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; }
.nx-end { font: 600 11.5px var(--nx-mono); color: var(--fg-2); text-align: center; }
.nx-end small { display: block; font: 9.5px var(--nx-font); letter-spacing: .14em; color: var(--fg-3); text-transform: uppercase; margin-top: 2px; }
.nx-track { position: relative; height: 6px; background: var(--surface-2); }
.nx-fill { position: absolute; left: 0; top: 0; bottom: 0; background: var(--amber); }
.nx-pin { position: absolute; top: -4px; width: 2px; height: 14px; background: var(--fg); transform: translateX(-1px); }
.nx-kv { display: grid; background: var(--surface); }
.nx-kv > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--border); min-height: 42px; }
.nx-kv > div:last-child { border-bottom: 0; }
.nx-kv span { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-2); min-width: 0; }
.nx-kv span small { display: block; font-size: 11px; letter-spacing: .02em; text-transform: none; color: var(--fg-3); margin-top: 2px; }
.nx-kv b { font: 700 13px var(--nx-mono); color: var(--fg); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nx-kv b em { font-style: normal; font-weight: 400; font-size: 10.5px; color: var(--fg-3); margin-left: 6px; }
.nx .g { color: var(--green); } .nx .r { color: var(--red); } .nx .a { color: var(--amber); } .nx .c { color: var(--cyan); }
.nx-sum { margin: 0; padding: 10px 12px; font-size: 11.5px; color: var(--fg-2); background: var(--surface); border-top: 1px solid var(--border); line-height: 1.5; }
.nx-tl .nx-sum { border-top: 0; }
.nx-tli { display: grid; grid-template-columns: 74px 10px 1fr; gap: 8px; align-items: start; padding: 9px 12px; border-bottom: 1px solid var(--border); background: var(--surface); }
.nx-tli:last-child { border-bottom: 0; }
.nx-tli:hover { background: var(--surface-2); }
.nx-tli time { font: 11px var(--nx-mono); color: var(--fg-3); padding-top: 2px; }
.nx-tli > i { width: 8px; height: 8px; border-radius: 50%; background: var(--fg-3); margin-top: 5px; }
.nx-tli > i.g { background: var(--green); } .nx-tli > i.r { background: var(--red); }
.nx-tli p { margin: 3px 0 0; font-size: 11.5px; color: var(--fg-2); }
.nx-h { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.nx-h b { font: 700 13px var(--nx-mono); color: var(--fg); }
.nx-bq { font-size: 10px; color: var(--fg-3); }
.nx-bd { font-size: 9px; font-weight: 800; letter-spacing: .14em; padding: 1px 5px; }
.nx-bd.long { color: var(--green); border: 1px solid var(--green); } .nx-bd.short { color: var(--red); border: 1px solid var(--red); }
/* §19 (owner 6 Nov; renamed .nx-stat 7 Nov - .nx-st is the header block, AUD.1 #1): strategy chip amber frame; status chip = capitalised word in its colour (waiting orange, open cyan, done green, stop red, other muted) */
.nx-bd.strat { color: var(--amber); border: 1px solid var(--amber); }
.nx-stat { font: 700 10px var(--nx-mono); letter-spacing: .04em; padding: 1px 6px; border: 1px solid var(--border-2); color: var(--fg-2); white-space: nowrap; }
.nx-stat.wait { color: var(--warn); border-color: var(--warn); } .nx-stat.open { color: var(--cyan); border-color: var(--cyan); }
.nx-stat.done { color: var(--green); border-color: var(--green); } .nx-stat.stop { color: var(--red); border-color: var(--red); }
/* Bloomed is light: darker text for the small chips, the roles kept (T60-X review120: >= 4.5:1 on #e3e3e3 / #ececec / #d3d3d3); the strategy is
   dark gold there - Bloomed's own accent is red and would read as SHORT */
html[data-theme="bloomed"] .nx-stat.wait { color: #7a420c; border-color: #7a420c; } html[data-theme="bloomed"] .nx-stat.open { color: #1a5459; border-color: #1a5459; }
html[data-theme="bloomed"] .nx-stat.done, html[data-theme="bloomed"] .nx-bd.long { color: #2f5a2a; border-color: #2f5a2a; }
html[data-theme="bloomed"] .nx-stat.stop, html[data-theme="bloomed"] .nx-bd.short { color: #8f2338; border-color: #8f2338; }
html[data-theme="bloomed"] .nx-bd.strat { color: #6b4f0f; border-color: #6b4f0f; } html[data-theme="bloomed"] .nx-stat, html[data-theme="bloomed"] .nx-bl { color: #444; border-color: #444; }
.nx-bl { font-size: 10px; color: var(--fg-2); border: 1px solid var(--border-2); padding: 0 4px; }
.nx-more { color: var(--amber); letter-spacing: .08em; text-transform: none; font-size: 11px; }
@media (min-width: 801px) { .nx-mar { grid-template-columns: 1fr 1fr; } }

/* ══ Screens not rebuilt yet (Trades, trade detail, History, Analytics, utilities):
   their style.css / position-tokens.css variables take the colours of the chosen style. ══ */
.nx-legacy {
  --blue: var(--cyan); --bg-elevated: var(--surface); --surface-raised: var(--surface-2);
  --text-primary: var(--fg); --text-secondary: var(--fg-2); --text-muted: var(--fg-3);
  --accent: var(--amber); --positive: var(--green); --negative: var(--red); --warning: var(--warn); --info: var(--cyan);
  --terminal-amber: var(--amber); --terminal-cyan: var(--cyan); --terminal-positive: var(--green); --terminal-negative: var(--red); --terminal-magenta: var(--violet);
  --terminal-text-primary: var(--fg); --terminal-text-secondary: var(--fg-2); --terminal-text-muted: var(--fg-3);
  --home-neutral-label: var(--fg-2); --home-neutral-copy: var(--fg-2);
  --op-canvas: var(--bg); --op-surface: var(--surface); --op-raised: var(--surface-2); --op-border: var(--border); --op-strong: var(--border-2);
  --op-text: var(--fg); --op-secondary: var(--fg-2); --op-muted: var(--fg-3);
  --op-amber: var(--amber); --op-cyan: var(--cyan); --op-teal: var(--green); --op-red: var(--red); --op-warning: var(--warn);
  --font-terminal: var(--nx-mono);
}
html[data-theme="bloomed"] .nx-legacy .shared-badge.long { background: transparent; border-color: var(--green); }
html[data-theme="bloomed"] .nx-legacy .shared-badge.short { background: transparent; border-color: var(--red); }
html[data-theme="bloomed"] .nx-legacy input, html[data-theme="bloomed"] .nx-legacy select { background: var(--surface); color: var(--fg); }
html[data-theme="bloomed"] .module-tabs.nx a.active { background: #333; color: var(--bg); border-color: #333; }
html[data-theme="neon"] .module-tabs.nx a { letter-spacing: .06em; font-weight: 600; }
.v2-distance-labels span:first-child:last-child { transform: none; }
.nx-legacy .v2-distance-labels { color: var(--fg-2); }
.nx-legacy .v2-distance-labels span:first-child, .nx-legacy .level-scale-no-stop { color: var(--red); }
.nx-legacy .v2-distance-labels span.reached { color: var(--green); }
html[data-theme="neon"] body { background: #0e1020; }
html[data-theme="bloomed"] body { background: #e3e3e3; }

/* ══ MARATHON · TRADES and HISTORY (step 3, mock 8) ══ */
.nx-mid { color: var(--amber); font: 700 12px var(--nx-mono); letter-spacing: .1em; text-shadow: 0 0 10px rgba(255,176,32,.35); text-transform: none; }
.nx-mid.dim { color: var(--fg-3); text-shadow: none; }
.nx-acc { display: flex; align-items: center; gap: 10px; padding: 8px 12px; min-height: 42px; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--fg-2); background: var(--surface-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); cursor: pointer; user-select: none; }
.nx-acc b { color: var(--fg); letter-spacing: .08em; font-family: var(--nx-mono); }
.nx-acc .nx-chev { width: 14px; height: 14px; color: var(--fg-3); transition: transform .15s; transform: rotate(90deg); }
.nx-acc.closed .nx-chev { transform: rotate(0); }
.nx-acc.closed + .nx-accb { display: none; }
.nx-acc .nx-seg { margin-left: auto; }
.nx-seg button.active { background: var(--amber); color: #000; font-weight: 800; }
.nx-feed.feed { display: grid; gap: 10px; padding: 10px 12px; background: var(--bg); grid-template-columns: minmax(0, 1fr); }
.nx-feed .nx-row { border: 1px solid var(--border); }
/* open position card */
.nx-tc.pcard { border: 1px solid var(--border); border-left: 3px solid var(--red); background: var(--surface); cursor: pointer; color: var(--fg); border-radius: var(--nx-radius-sm); }
.nx-tc.long { border-left-color: var(--green); }
.nx-tc:focus-visible { outline: 1px solid var(--amber); }
.nx-tch { display: flex; align-items: center; gap: 6px; padding: 10px 12px 6px; flex-wrap: wrap; }
.nx-sym { font: 700 16px var(--nx-mono); letter-spacing: .03em; margin-right: 2px; }
.nx-alert { width: 14px !important; height: 14px !important; color: var(--warn); }
.nx-rt { margin-left: auto; display: grid; gap: 2px; text-align: right; }
.nx-upnl { font: 700 15px var(--nx-mono); font-variant-numeric: tabular-nums; color: var(--fg-2); }
.nx-age { font-size: 10px; letter-spacing: .1em; color: var(--fg-3); }
.nx-pc { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, max-content)); gap: 8px 20px; padding: 4px 12px 8px; }
.nx-pc > div { display: grid; gap: 3px; min-width: 0; }
.nx-pc span { font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-2); }
.nx-pc b { font: 700 13px var(--nx-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nx-pc .e b { color: var(--cyan); } .nx-pc .s b { color: var(--red); } .nx-pc .s.be b { color: var(--amber); } .nx-pc .c b { color: var(--amber); } .nx-pc .t b { color: var(--green); }
.nx-pc .c em { font-style: normal; margin-left: 6px; color: var(--fg-2); } .nx-pc .c em.up { color: var(--green); } .nx-pc .c em.dn { color: var(--red); }
.nx-pc .t.hit span { color: var(--green); } .nx-pc .t.hit span::after { content: " ✓"; } .nx-pc .t.hit b { color: var(--fg-2); }
.nx-pc.tps { padding-top: 0; }
.nx-ls { border-top: 1px solid var(--border); }
.nx-ls .shared-progress, .nx-ls .v2-distance-scale { margin: 0; }
.nx-ls > .v2-distance-scale { padding: 10px 12px; }
.nx-det { display: none; border-top: 1px solid var(--border); }
.nx-tc.expanded .nx-det { display: block; }
.nx-tc.expanded .nx-hint { display: none; }
.nx-hint { margin: 0; padding: 0 12px 8px; font-size: 10.5px; color: var(--fg-3); }
.nx-warn { display: flex; gap: 10px; align-items: flex-start; padding: 8px 12px; font-size: 11.5px; line-height: 1.5; color: var(--fg); background: rgba(245,171,33,.1); border-bottom: 1px solid rgba(245,171,33,.35); }
.nx-warn b { color: var(--amber); } .nx-warn svg.nx-i { color: var(--amber); width: 15px; height: 15px; margin-top: 1px; }
.nx-warn.r { background: rgba(255,102,117,.08); border-bottom-color: rgba(255,102,117,.3); } .nx-warn.r b, .nx-warn.r svg.nx-i { color: var(--red); }
.nx-facts { display: grid; background: var(--surface-2); }
.nx-facts > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 7px 12px; border-bottom: 1px solid var(--border); }
.nx-facts span { font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-2); }
.nx-facts b { font: 700 12px var(--nx-mono); font-variant-numeric: tabular-nums; color: var(--fg); text-align: right; overflow-wrap: anywhere; }
.nx-facts .g b { color: var(--green); } .nx-facts .r b { color: var(--red); }
.nx-det > .nx-more { display: block; padding: 9px 12px; text-align: right; background: var(--surface); border-bottom: 1px solid var(--border); }
.nx-tc .pcard-inline { border-top: 1px solid var(--border); background: var(--bg); }
/* closed trade row */
.nx-cl { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; align-items: center; padding: 9px 12px; border-bottom: 1px solid var(--border); background: var(--surface); }
.nx-cl:hover { background: var(--surface-2); }
.nx-cl small { grid-column: 1; font-size: 11px; color: var(--fg-2); } .nx-cl small time { color: var(--fg-3); }
.nx-cl .nx-h b { font-size: 13.5px; }
.nx-out { font-size: 9px; font-weight: 800; letter-spacing: .12em; padding: 2px 6px; }
.nx-out.g { background: rgba(66,223,174,.15); color: var(--green); } .nx-out.d { background: rgba(66,223,174,.25); color: var(--green); }
.nx-out.r { background: rgba(255,102,117,.15); color: var(--red); } .nx-out.c { background: rgba(84,199,237,.15); color: var(--cyan); } .nx-out.n { background: var(--surface-2); color: var(--fg-2); }
.nx-pnl { grid-column: 2; grid-row: 1 / span 2; font: 700 13.5px var(--nx-mono); font-variant-numeric: tabular-nums; color: var(--fg-2); text-align: right; }
.nx-morebtn { display: block; width: 100%; padding: 10px; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--amber); background: var(--surface); border-top: 1px solid var(--border) !important; }
/* history */
.nx-mh { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; padding: 11px 12px; border-bottom: 1px solid var(--border); background: var(--surface); cursor: pointer; }
.nx-mh:focus-visible { outline: 1px solid var(--amber); }
.nx-n { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nx-dates { display: block; color: var(--fg-2); font-size: 11px; margin-top: 3px; }
.nx-fin { text-align: right; } .nx-fin b { display: block; font: 700 14px var(--nx-mono); font-variant-numeric: tabular-nums; color: var(--fg); } .nx-fin small { color: var(--fg-3); font-size: 10px; }
.nx-mh .nx-chev { width: 14px; height: 14px; color: var(--fg-3); transition: transform .15s; }
.nx-mh.open .nx-chev { transform: rotate(90deg); }
.nx-mhb { display: none; background: var(--bg); border-bottom: 1px solid var(--border); }
.nx-mh.open + .nx-mhb { display: block; }
.nx-mhb .nx-kv, .nx-mhb .nx-kv > div, .nx-mhb .nx-cl { background: var(--bg); }
.nx-kv b i { font-style: normal; }
html[data-theme="bloomed"] .nx-seg button.active { background: #333; color: var(--bg); }
html[data-theme="bloomed"] .nx-tc.pcard { border: 1px solid #333; border-left-width: 9px; border-left-color: var(--red); }
html[data-theme="bloomed"] .nx-tc.long { border-left-color: var(--lime); }
html[data-theme="bloomed"] .nx-sym { font: 900 18px/1 Poppins, "Segoe UI Black", "Arial Black", sans-serif; }
html[data-theme="bloomed"] .nx-acc { background: var(--surface); border-color: #333; color: #333; font-weight: 800; letter-spacing: .06em; }
html[data-theme="neon"] .nx-acc { letter-spacing: .08em; font-weight: 600; }
@media (min-width: 801px) { .nx-feed.feed { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); } }

/* Marathon -> Results (results-v1, 2026-10-26): the T60-X component inside the shell view. */
.nx-results-wrap { padding: 16px 16px 32px; }
@media (min-width: 981px) { .nx-results-wrap { padding: 24px 32px 48px; } }


/* Trade detail (P1.0.14, mock v3 of 2026-10-27): the Marathon components; only the page wrapper, the outcome fills, the
   events table and the chart box are new. Outcome fills = catalog §04 "исход закрытой сделки". */
.nx .nx-td-wrap { padding: 12px 12px 32px; max-width: 640px; margin: 0 auto; }
.nx .nx-td-back { display: inline-block; margin: 2px 0 12px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-2); background: none; border: 0; cursor: pointer; font-family: inherit; }
.nx .nx-td-back:hover { color: var(--amber); }
.nx .nx-td > h3 { cursor: default; }
.nx .nx-td .nx-tc.detail { margin: 10px 12px; cursor: default; }
.nx .nx-td .nx-tc.detail .nx-ls { border-bottom: 0; }
.nx .nx-td .nx-acc { border-top: 1px solid var(--border); cursor: pointer; }
.nx .nx-td .nx-acc .nx-src { margin-right: 4px; }
.nx .nx-tag.st-tp { background: var(--green); color: #000; border: 0; } .nx .nx-tag.st-all { background: #1f8a62; color: #fff; border: 0; }
.nx .nx-tag.st-be { background: var(--cyan); color: #000; border: 0; } .nx .nx-tag.st-sl { background: var(--red); color: #000; border: 0; }
.nx .nx-tag.st-manual { background: var(--amber); color: #000; border: 0; } .nx .nx-tag.st-none { background: var(--surface-2); color: var(--fg-2); border: 1px solid var(--border-2); }
html[data-theme="bloomed"] .nx .nx-tag.st-tp, html[data-theme="bloomed"] .nx .nx-tag.st-be, html[data-theme="bloomed"] .nx .nx-tag.st-sl, html[data-theme="bloomed"] .nx .nx-tag.st-manual { color: var(--fg); font-weight: 800; }
.nx .nx-tt { width: 100%; border-collapse: collapse; font-size: 12px; background: var(--surface); }
.nx .nx-tt th { text-align: left; font-weight: 400; font-size: 8.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--fg-3); padding: 7px 12px 4px; border-bottom: 1px solid var(--border); }
.nx .nx-tt td { padding: 7px 12px; border-bottom: 1px solid var(--border); color: var(--fg); font-variant-numeric: tabular-nums; vertical-align: top; }
.nx .nx-tt tr:last-child td { border-bottom: 0; } .nx .nx-tt td:last-child { text-align: right; color: var(--fg-2); white-space: nowrap; }
.nx .nx-tt td.g { color: var(--green); } .nx .nx-tt td.a { color: var(--amber); } .nx .nx-tt td.r { color: var(--red); }
.nx .nx-td .nx-tl { background: var(--surface); } .nx .nx-td .nx-tli > i.c { background: var(--cyan); } .nx .nx-td .nx-tli > i.a { background: var(--amber); }
.nx .nx-td .nx-sum { margin: 0; }
.nx .nx-td-chart { padding: 10px 12px 12px; background: var(--bg); } .nx .nx-td-tfs { display: flex; gap: 4px; margin-bottom: 8px; }
.nx .nx-td-tfs button { font-family: inherit; font-size: 9px; font-weight: 800; letter-spacing: .12em; padding: 3px 7px; border: 1px solid var(--border-2); background: var(--surface-2); color: var(--fg-2); cursor: pointer; }
.nx .nx-td-tfs button.on { background: var(--amber); border-color: var(--amber); color: #000; }
.nx .nx-td-canvas { position: relative; height: 220px; } .nx .nx-td-canvas .position-chart-canvas { position: absolute; inset: 0; }
.nx .nx-td-owner-body { background: var(--surface); }
.nx .nx-td-owner-body select { width: calc(100% - 24px); margin: 8px 12px; padding: 8px; background: var(--surface-2); color: var(--fg); border: 1px solid var(--border-2); font-family: inherit; font-size: 11px; }
.nx .nx-td-owner-body button { font-family: inherit; font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; padding: 6px 10px; margin: 0 0 10px 12px; border: 1px solid var(--border-2); color: var(--amber); background: var(--surface-2); cursor: pointer; }
.nx .nx-td-empty { padding: 24px 12px; text-align: center; } .nx .nx-td-empty b { display: block; font-size: 15px; margin-bottom: 6px; } .nx .nx-td-empty p { color: var(--fg-2); font-size: 11px; margin: 0; }
/* ══ Width (P1.0.16, owner-approved mock 28.10): from 900 px Trades and Trade detail take two columns 1.05fr / 1fr up to 1280 px -
   the first column is what you look at (open positions, the trade card), the second is context (closed trades, chart, events).
   The wrappers nx-tr-col / nx-td-col are transparent on a phone, so the order and the markup stay the same. ══ */
.nx-tr-col, .nx-td-col { display: contents; }
body.tg-app .topbar.nx { padding-top: var(--tg-content-safe-area-inset-top, 0px); }   /* full screen: Telegram's close / minimise overlay sits above the top bar */
@media (min-width: 900px) {
  #view-marathon-trades .nx-menu { max-width: 1280px; }
  #view-marathon-trades .nx-trades { display: grid; grid-template-columns: 1.05fr 1fr; align-items: start; }
  #view-marathon-trades .nx-trades > h3 { grid-column: 1 / -1; }
  #view-marathon-trades .nx-feed.feed { grid-template-columns: minmax(0, 1fr); }
  .nx-tr-col, .nx-td-col { display: block; min-width: 0; }
  .nx-tr-col + .nx-tr-col, .nx-td-col + .nx-td-col { border-left: 1px solid var(--border); }
  .nx .nx-td-wrap { padding: 24px; max-width: 1280px; }
  .nx .nx-td { display: grid; grid-template-columns: 1.05fr 1fr; align-items: start; }
  .nx .nx-td > h3 { grid-column: 1 / -1; }
  .nx .nx-td-canvas { height: 280px; }
}

/* Section 15 Settings and Guide (owner-approved P7.2, 4 Nov 2026): one column of the Profile primitives, up to 640 px. */
.nx-util { max-width: 640px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.nx-util .nx-prow .nx-seg { justify-content: flex-end; }
.nx-util a.nx-prow { color: inherit; text-decoration: none; }
.nx-util a.nx-prow .nx-i { width: 14px; height: 14px; color: var(--fg-3); flex: none; }
.nx-util .nx-answer, .nx-guide .nx-answer { margin: 0; padding: 12px 14px; font-size: 13px; line-height: 1.6; color: var(--fg-2); text-transform: none; letter-spacing: 0; }
.nx-guide .nx-guide-item + .nx-guide-item { border-top: 1px solid var(--border); }
.nx-guide summary.nx-acc { list-style: none; cursor: pointer; border-top: 0; border-bottom: 0; }
.nx-guide summary.nx-acc::-webkit-details-marker { display: none; }
.nx-guide summary.nx-acc::after { content: "+"; margin-left: auto; color: var(--fg-3); font-family: var(--nx-mono); }
.nx-guide .nx-guide-item[open] > summary.nx-acc::after { content: "\2212"; }
.nx-guide .nx-guide-item[open] > summary.nx-acc { border-bottom: 1px solid var(--border); }
.nx-guide summary.nx-acc:focus-visible, .nx-util a.nx-prow:focus-visible, .nx-util .nx-seg button:focus-visible { outline: 2px solid var(--amber); outline-offset: -2px; }

/* Section 16 (owner 4 Nov 2026, P7.4): one funding row on the open position card, after the level scale; the facts row style. */
.nx-tc .nx-fund { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 7px 12px; border-top: 1px solid var(--border); }
.nx-tc .nx-fund span { font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-2); }
.nx-tc .nx-fund b { font: 700 12px var(--nx-mono); font-variant-numeric: tabular-nums; color: var(--fg); text-align: right; }
.nx-tc .nx-fund b.g { color: var(--green); }
.nx-tc .nx-fund b.r { color: var(--red); }

/* Section 4 / UI.2 (owner 5 Nov 2026): the liquidation boundary of a position without an SL - muted red, dashed edge, never a stop's look. */
.v2-distance-labels span.liq { color: var(--red); opacity: .8; }
.shared-progress-segment.liq { border-left: 2px dashed var(--red); border-radius: 0 2px 2px 0; opacity: .85; }
.v2-distance-fill.is-liq { opacity: .45; }
