/* ===========================================================
   NODO Shell — Componentes estilo DevExpress WinForms
   ===========================================================
   Patrones de XtraNavBar, XtraTreeList, AlertControl, WaitForm,
   XtraVerticalGrid (PropertyGrid), XtraLayoutControl.

   Identidad: gradientes metálicos, grouping bars, triggers a la
   derecha de editores, headers con gradient azul Office, density
   alta. Tema-aware (Office/Bloomberg/Slate).
   =========================================================== */


/* ============================================================
   NAVBAR — XtraNavBar / Outlook bar
   ============================================================ */
.no-nav {
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, #eef2f7 0%, #dce3ec 100%);
  border: 1px solid var(--border-strong);
  font-family: var(--font-ui);
  width: 220px;
  min-height: 200px;
  height: 100%;
  overflow: hidden;
}
.no-nav__header {
  padding: 4px 8px;
  background: linear-gradient(180deg, var(--ofc-blue-500) 0%, var(--ofc-blue-700) 100%);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semi);
  text-shadow: 0 1px 0 rgba(0,0,0,0.3);
  border-bottom: 1px solid var(--ofc-blue-900);
  flex-shrink: 0;
}
.no-nav__groups {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.no-nav__group {
  display: flex;
  flex-direction: column;
  border-bottom: 1px solid var(--sil-400);
}
.no-nav__group-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: linear-gradient(180deg, #eef3fa 0%, #d6dfed 100%);
  cursor: pointer;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semi);
  color: var(--ofc-blue-900);
  text-shadow: 0 1px 0 rgba(255,255,255,0.5);
  border-bottom: 1px solid var(--sil-400);
  user-select: none;
  transition: background var(--t-fast);
}
.no-nav__group-header:hover { background: linear-gradient(180deg, #e0eaf4 0%, #c4d2e3 100%); }
.no-nav__group-icon {
  width: 18px; height: 18px;
  display: grid; place-items: center;
  color: var(--ofc-blue-700);
  flex-shrink: 0;
}
.no-nav__group-icon svg { width: 16px; height: 16px; }
.no-nav__group-title { flex: 1; }
.no-nav__group-toggle { font-size: 10px; color: var(--text-muted); transition: transform var(--t); }
.no-nav__group--expanded .no-nav__group-toggle { transform: rotate(180deg); }
.no-nav__group-body {
  display: none;
  background: #fff;
  padding: 2px 0;
}
.no-nav__group--expanded .no-nav__group-body { display: block; }
.no-nav__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px 4px 30px;
  font-size: var(--fs-sm);
  color: var(--text);
  cursor: pointer;
  border-left: 3px solid transparent;
  transition: background var(--t-fast), border-color var(--t-fast);
  user-select: none;
}
.no-nav__item:hover { background: var(--bg-hover); }
.no-nav__item[aria-selected="true"] {
  background: var(--ofc-blue-100);
  color: var(--ofc-blue-900);
  border-left-color: var(--ofc-blue-700);
  font-weight: var(--fw-semi);
}
.no-nav__item-icon {
  width: 14px; height: 14px;
  display: grid; place-items: center;
  color: var(--ofc-blue-700);
  flex-shrink: 0;
}
.no-nav__item-icon svg { width: 14px; height: 14px; }
.no-nav__item-label { flex: 1; }
.no-nav__item-badge {
  font-size: 10px;
  padding: 0 5px;
  background: var(--ofc-blue-700);
  color: #fff;
  border-radius: 8px;
  font-weight: var(--fw-bold);
}


/* ============================================================
   TREELIST — XtraTreeList (tree + grid)
   ============================================================ */
.no-tl {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid var(--border-strong);
  font-family: var(--font-ui);
  overflow: hidden;
  font-size: var(--fs-sm);
}
.no-tl__header {
  display: flex;
  background: linear-gradient(180deg, #eef3fa 0%, #d6dfed 100%);
  border-bottom: 1px solid var(--border-strong);
  flex-shrink: 0;
  font-weight: var(--fw-semi);
  color: var(--text);
  text-shadow: 0 1px 0 rgba(255,255,255,0.5);
}
.no-tl__col {
  padding: 4px 8px;
  border-right: 1px solid var(--sil-400);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.no-tl__col:last-child { border-right: none; }
.no-tl__col--num    { text-align: right; font-family: var(--font-mono); }
.no-tl__col--center { text-align: center; }
.no-tl__body {
  flex: 1;
  overflow: auto;
  background: #fff;
}
.no-tl__row {
  display: flex;
  border-bottom: 1px solid #edeff2;
  cursor: pointer;
  background: #fff;
  align-items: center;
}
.no-tl__row:nth-child(even) { background: #f6f8fb; }
.no-tl__row:hover { background: #fbf4d7; }
.no-tl__row[aria-selected="true"] {
  background: var(--ofc-blue-100);
  color: var(--ofc-blue-900);
}
.no-tl__row-cell {
  padding: 3px 8px;
  border-right: 1px solid #edeff2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: 4px;
  line-height: 18px;
  min-height: 22px;
}
.no-tl__row-cell:last-child { border-right: none; }
.no-tl__row-cell--num,
.no-tl__row-cell--money {
  text-align: right;
  font-family: var(--font-mono);
  justify-content: flex-end;
}
.no-tl__indent {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.no-tl__indent-spacer { width: 14px; height: 14px; flex-shrink: 0; }
.no-tl__toggle {
  width: 14px; height: 14px;
  display: grid;
  place-items: center;
  color: var(--text-muted);
  font-size: 9px;
  flex-shrink: 0;
  transition: transform var(--t-fast);
  cursor: pointer;
  border: 1px solid var(--sil-400);
  background: #fff;
  border-radius: 1px;
  margin-right: 4px;
}
.no-tl__toggle--leaf { visibility: hidden; }
.no-tl__row[aria-expanded="true"] .no-tl__toggle::before  { content: "−"; font-size: 11px; line-height: 1; }
.no-tl__row[aria-expanded="false"] .no-tl__toggle::before { content: "+"; font-size: 11px; line-height: 1; }
.no-tl__icon {
  width: 14px; height: 14px;
  color: var(--ofc-blue-700);
  flex-shrink: 0;
}
.no-tl__icon svg { width: 14px; height: 14px; }


/* ============================================================
   ALERT CONTROL — notificación esquinera con thumbnail
   ============================================================ */
.no-alert-stack {
  position: fixed;
  z-index: 12000;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
  padding: 16px;
}
.no-alert-stack--bottom-right { bottom: 26px; right: 0; align-items: flex-end; }
.no-alert-stack--top-right    { top: 0;    right: 0; align-items: flex-end; }
.no-alert {
  display: flex;
  width: 320px;
  background: linear-gradient(180deg, #fdfdfe 0%, #e6ecf3 100%);
  border: 1px solid var(--border-strong);
  border-top: 3px solid var(--ofc-blue-700);
  border-radius: 3px;
  box-shadow: 0 6px 24px rgba(0,0,0,0.25);
  pointer-events: auto;
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  color: var(--text);
  overflow: hidden;
  animation: no-alert-in 240ms ease;
}
@keyframes no-alert-in {
  from { transform: translateX(20px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
.no-alert--leaving { animation: no-alert-out 220ms ease forwards; }
@keyframes no-alert-out {
  from { transform: translateX(0); opacity: 1; }
  to   { transform: translateX(20px); opacity: 0; }
}
.no-alert--success { border-top-color: var(--success); }
.no-alert--warning { border-top-color: var(--warning); }
.no-alert--danger  { border-top-color: var(--danger); }
.no-alert__thumb {
  width: 56px;
  flex-shrink: 0;
  background: linear-gradient(180deg, var(--ofc-blue-500) 0%, var(--ofc-blue-700) 100%);
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 22px;
  text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}
.no-alert__thumb img { width: 100%; height: 100%; object-fit: cover; }
.no-alert--success .no-alert__thumb { background: linear-gradient(180deg, #5cb85c 0%, #2f7d2f 100%); }
.no-alert--warning .no-alert__thumb { background: linear-gradient(180deg, #f0ad4e 0%, #a85c00 100%); }
.no-alert--danger  .no-alert__thumb { background: linear-gradient(180deg, #d9534f 0%, #a40000 100%); }
.no-alert__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 8px 10px 6px;
  min-width: 0;
}
.no-alert__title {
  font-weight: var(--fw-semi);
  color: var(--ofc-blue-900);
  margin-bottom: 2px;
  text-shadow: 0 1px 0 rgba(255,255,255,0.5);
  display: flex;
  align-items: center;
  gap: 6px;
}
.no-alert__title-text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.no-alert__close {
  width: 16px; height: 16px;
  border-radius: 1px;
  background: transparent;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 11px;
  display: grid; place-items: center;
  flex-shrink: 0;
}
.no-alert__close:hover { background: var(--bg-hover); color: var(--text); }
.no-alert__msg {
  color: var(--text);
  font-size: 11px;
  line-height: 1.4;
  margin-bottom: 6px;
}
.no-alert__actions {
  display: flex;
  gap: 4px;
  margin-top: auto;
}
.no-alert__action {
  font-size: 11px;
  color: var(--ofc-blue-700);
  background: transparent;
  border: 1px solid transparent;
  padding: 2px 6px;
  border-radius: 2px;
  cursor: pointer;
  font-weight: var(--fw-semi);
  text-decoration: none;
}
.no-alert__action:hover { background: var(--bg-hover); border-color: var(--border-hover); text-decoration: underline; }
.no-alert__action--primary { color: var(--ofc-blue-900); }


/* ============================================================
   WAIT FORM — overlay loading con spinner clásico
   ============================================================ */
.no-wait-bg {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 13000;
  display: grid;
  place-items: center;
  animation: no-wait-fade 120ms ease;
}
.no-wait-bg--inline {
  position: absolute;
  background: rgba(255,255,255,0.85);
}
@keyframes no-wait-fade { from { opacity: 0; } to { opacity: 1; } }
.no-wait {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 22px 28px;
  background: linear-gradient(180deg, #fdfdfe 0%, #e6ecf3 100%);
  border: 1px solid var(--border-strong);
  border-radius: 3px;
  box-shadow: 0 8px 28px rgba(0,0,0,0.3);
  font-family: var(--font-ui);
  min-width: 200px;
  text-align: center;
}
.no-wait__spinner {
  width: 40px; height: 40px;
  position: relative;
}
.no-wait__spinner svg {
  width: 40px; height: 40px;
  animation: no-wait-spin 800ms linear infinite;
}
@keyframes no-wait-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.no-wait__title {
  font-size: var(--fs-md);
  font-weight: var(--fw-semi);
  color: var(--ofc-blue-900);
  text-shadow: 0 1px 0 rgba(255,255,255,0.5);
}
.no-wait__msg {
  font-size: 11px;
  color: var(--text-muted);
}
.no-wait--inline {
  background: rgba(255,255,255,0.95);
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}


/* ============================================================
   VERTICAL GRID / PROPERTY GRID — campos como filas
   ============================================================ */
.no-vg {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--border-strong);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  overflow: hidden;
}
.no-vg__header {
  display: flex;
  background: linear-gradient(180deg, #eef3fa 0%, #d6dfed 100%);
  border-bottom: 1px solid var(--border-strong);
  font-weight: var(--fw-semi);
  color: var(--ofc-blue-900);
  text-shadow: 0 1px 0 rgba(255,255,255,0.5);
}
.no-vg__header > div {
  padding: 4px 8px;
  border-right: 1px solid var(--sil-400);
}
.no-vg__header > div:last-child { border-right: none; }
.no-vg__body { display: flex; flex-direction: column; }
.no-vg__category {
  background: linear-gradient(180deg, #d6dfed 0%, #b8c5d9 100%);
  color: var(--ofc-blue-900);
  font-weight: var(--fw-semi);
  padding: 4px 10px;
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 1px solid var(--border);
  border-top: 1px solid var(--sil-500);
  text-shadow: 0 1px 0 rgba(255,255,255,0.5);
}
.no-vg__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  border-bottom: 1px solid #edeff2;
  transition: background var(--t-fast);
}
.no-vg__row:hover { background: #fffbea; }
.no-vg__row[aria-selected="true"] { background: var(--ofc-blue-100); }
.no-vg__row-label {
  padding: 4px 10px;
  background: linear-gradient(90deg, #f4f6fa 0%, #fff 100%);
  border-right: 1px solid var(--sil-400);
  color: var(--text);
  font-size: var(--fs-sm);
  display: flex;
  align-items: center;
  user-select: none;
}
.no-vg__row-label-required::after { content: " *"; color: var(--danger); font-weight: bold; }
.no-vg__row-value {
  padding: 0;
  display: flex;
  align-items: stretch;
  background: #fff;
  min-height: 22px;
}
.no-vg__row-value input,
.no-vg__row-value select,
.no-vg__row-value textarea {
  width: 100%;
  border: none;
  background: transparent;
  padding: 3px 8px;
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  color: var(--text);
  outline: none;
}
.no-vg__row-value input:focus,
.no-vg__row-value select:focus,
.no-vg__row-value textarea:focus {
  background: #fffbea;
  box-shadow: inset 0 0 0 1px var(--ofc-blue-500);
}
.no-vg__row-value--readonly { background: var(--sil-50); color: var(--text-muted); }
.no-vg__row-value--readonly input { color: var(--text-muted); }


/* ============================================================
   LAYOUT CONTROL — form denso con grupos colapsables
   ============================================================ */
.no-lay {
  background: linear-gradient(180deg, #f4f6fa 0%, #eef2f7 100%);
  border: 1px solid var(--border);
  font-family: var(--font-ui);
  padding: 4px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.no-lay__group {
  background: #fff;
  border: 1px solid var(--sil-500);
  border-radius: 2px;
  overflow: hidden;
}
.no-lay__group-header {
  background: linear-gradient(180deg, #d6dfed 0%, #b8c5d9 100%);
  color: var(--ofc-blue-900);
  padding: 4px 10px;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semi);
  border-bottom: 1px solid var(--sil-500);
  text-shadow: 0 1px 0 rgba(255,255,255,0.5);
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  user-select: none;
}
.no-lay__group-toggle {
  font-size: 10px;
  color: var(--text-muted);
  transition: transform var(--t);
}
.no-lay__group--collapsed .no-lay__group-toggle { transform: rotate(-90deg); }
.no-lay__group-body {
  padding: 6px 8px;
  display: grid;
  gap: 4px 12px;
}
.no-lay__group--collapsed .no-lay__group-body { display: none; }
.no-lay__group-cols-1 .no-lay__group-body { grid-template-columns: 1fr; }
.no-lay__group-cols-2 .no-lay__group-body { grid-template-columns: 1fr 1fr; }
.no-lay__group-cols-3 .no-lay__group-body { grid-template-columns: 1fr 1fr 1fr; }
.no-lay__group-cols-4 .no-lay__group-body { grid-template-columns: 1fr 1fr 1fr 1fr; }

.no-lay__item {
  display: grid;
  grid-template-columns: 110px 1fr;
  align-items: center;
  gap: 8px;
  font-size: var(--fs-sm);
  min-height: 22px;
}
.no-lay__item-label {
  color: var(--text);
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.no-lay__item-label--required::after { content: " *"; color: var(--danger); font-weight: bold; }
.no-lay__item-value > input,
.no-lay__item-value > select,
.no-lay__item-value > textarea {
  width: 100%;
  padding: 3px 6px;
  border: 1px solid var(--sil-500);
  background: #fff;
  border-radius: 1px;
  font-size: var(--fs-sm);
  font-family: inherit;
  color: var(--text);
  outline: none;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.05);
  height: 22px;
}
.no-lay__item-value > input:focus,
.no-lay__item-value > select:focus,
.no-lay__item-value > textarea:focus {
  border-color: var(--ofc-blue-500);
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.05), 0 0 0 1px var(--ofc-blue-300);
}
.no-lay__item--span-2 { grid-column: span 2; }
.no-lay__item--span-3 { grid-column: span 3; }
.no-lay__item--span-4 { grid-column: span 4; }
.no-lay__item--full   { grid-column: 1 / -1; }
.no-lay__separator {
  grid-column: 1 / -1;
  height: 1px;
  background: var(--sil-400);
  margin: 4px 0;
}


/* =============================================================
   THEME OVERRIDES — Bloomberg
   ============================================================= */
[data-theme="bloomberg"] .no-nav {
  background: linear-gradient(180deg, #2e2e2e 0%, #232323 100%);
  border-color: #4a4a4a;
}
[data-theme="bloomberg"] .no-nav__header {
  background: linear-gradient(180deg, #d4a76a 0%, #b8761a 100%);
  color: #1a1a1a;
  border-bottom-color: #6b3f1c;
  text-shadow: 0 1px 0 rgba(255,255,255,0.2);
}
[data-theme="bloomberg"] .no-nav__group { border-bottom-color: #3a3a3a; }
[data-theme="bloomberg"] .no-nav__group-header {
  background: linear-gradient(180deg, #353535 0%, #2a2a2a 100%);
  color: #e8c084;
  border-bottom-color: #3a3a3a;
  text-shadow: 0 1px 0 rgba(0,0,0,0.4);
}
[data-theme="bloomberg"] .no-nav__group-icon { color: #d4a76a; }
[data-theme="bloomberg"] .no-nav__group-body { background: #1f1f1f; }
[data-theme="bloomberg"] .no-nav__item { color: #e8e8e8; }
[data-theme="bloomberg"] .no-nav__item:hover { background: linear-gradient(180deg, #4a3a20 0%, #3a2a18 100%); }
[data-theme="bloomberg"] .no-nav__item[aria-selected="true"] {
  background: #3a2a18;
  color: #e8c084;
  border-left-color: #d4a76a;
}
[data-theme="bloomberg"] .no-nav__item-icon { color: #d4a76a; }
[data-theme="bloomberg"] .no-nav__item-badge { background: #d4a76a; color: #1a1a1a; }

[data-theme="bloomberg"] .no-tl { background: #1f1f1f; border-color: #3a3a3a; color: #e8e8e8; }
[data-theme="bloomberg"] .no-tl__header {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  color: #e8c084;
  border-bottom-color: #5a4520;
  text-shadow: 0 1px 0 rgba(0,0,0,0.4);
}
[data-theme="bloomberg"] .no-tl__col { border-right-color: #3a3a3a; }
[data-theme="bloomberg"] .no-tl__row { background: #1f1f1f; border-bottom-color: #2a2a2a; }
[data-theme="bloomberg"] .no-tl__row:nth-child(even) { background: #262626; }
[data-theme="bloomberg"] .no-tl__row:hover { background: #3a2a18; color: #e8c084; }
[data-theme="bloomberg"] .no-tl__row[aria-selected="true"] { background: #5a3f1c; color: #fff; }
[data-theme="bloomberg"] .no-tl__row-cell { border-right-color: #2a2a2a; }
[data-theme="bloomberg"] .no-tl__toggle { background: #2a2a2a; border-color: #4a4a4a; color: #d4a76a; }
[data-theme="bloomberg"] .no-tl__icon { color: #d4a76a; }

[data-theme="bloomberg"] .no-alert {
  background: linear-gradient(180deg, #2e2e2e 0%, #232323 100%);
  border-color: #4a4a4a;
  border-top-color: #d4a76a;
  color: #e8e8e8;
}
[data-theme="bloomberg"] .no-alert__title { color: #e8c084; text-shadow: 0 1px 0 rgba(0,0,0,0.4); }
[data-theme="bloomberg"] .no-alert__msg { color: #c0c0c0; }
[data-theme="bloomberg"] .no-alert__close { color: #888; }
[data-theme="bloomberg"] .no-alert__close:hover { background: #3a3a3a; color: #e8e8e8; }
[data-theme="bloomberg"] .no-alert__action { color: #d4a76a; }
[data-theme="bloomberg"] .no-alert__action:hover { background: #3a2a18; border-color: #5a4520; }
[data-theme="bloomberg"] .no-alert__thumb {
  background: linear-gradient(180deg, #d4a76a 0%, #b8761a 100%);
  color: #1a1a1a;
}

[data-theme="bloomberg"] .no-wait {
  background: linear-gradient(180deg, #2e2e2e 0%, #232323 100%);
  border-color: #5a4520;
  box-shadow: 0 8px 28px rgba(0,0,0,0.6);
}
[data-theme="bloomberg"] .no-wait__title { color: #e8c084; }
[data-theme="bloomberg"] .no-wait__msg { color: #a0a0a0; }
[data-theme="bloomberg"] .no-wait--inline { background: rgba(35,35,35,0.95); }

[data-theme="bloomberg"] .no-vg { background: #1f1f1f; border-color: #3a3a3a; color: #e8e8e8; }
[data-theme="bloomberg"] .no-vg__header {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  color: #e8c084;
  border-bottom-color: #5a4520;
}
[data-theme="bloomberg"] .no-vg__category {
  background: linear-gradient(180deg, #3a2c1c 0%, #2a2014 100%);
  color: #e8c084;
  border-bottom-color: #3a3a3a;
  border-top-color: #4a4a4a;
}
[data-theme="bloomberg"] .no-vg__row { border-bottom-color: #2a2a2a; }
[data-theme="bloomberg"] .no-vg__row:hover { background: #2a2014; }
[data-theme="bloomberg"] .no-vg__row[aria-selected="true"] { background: #3a2a18; }
[data-theme="bloomberg"] .no-vg__row-label {
  background: linear-gradient(90deg, #1a1a1a 0%, #1f1f1f 100%);
  border-right-color: #3a3a3a;
  color: #c0c0c0;
}
[data-theme="bloomberg"] .no-vg__row-value { background: #1f1f1f; }
[data-theme="bloomberg"] .no-vg__row-value input,
[data-theme="bloomberg"] .no-vg__row-value select,
[data-theme="bloomberg"] .no-vg__row-value textarea { color: #e8e8e8; }
[data-theme="bloomberg"] .no-vg__row-value input:focus,
[data-theme="bloomberg"] .no-vg__row-value select:focus,
[data-theme="bloomberg"] .no-vg__row-value textarea:focus { background: #2a2014; box-shadow: inset 0 0 0 1px #d4a76a; }
[data-theme="bloomberg"] .no-vg__row-value--readonly { background: #262626; }

[data-theme="bloomberg"] .no-lay {
  background: linear-gradient(180deg, #2a2a2a 0%, #232323 100%);
  border-color: #3a3a3a;
}
[data-theme="bloomberg"] .no-lay__group { background: #1f1f1f; border-color: #4a4a4a; }
[data-theme="bloomberg"] .no-lay__group-header {
  background: linear-gradient(180deg, #3a2c1c 0%, #2a2014 100%);
  color: #e8c084;
  border-bottom-color: #5a4520;
}
[data-theme="bloomberg"] .no-lay__item-label { color: #e8e8e8; }
[data-theme="bloomberg"] .no-lay__item-value > input,
[data-theme="bloomberg"] .no-lay__item-value > select,
[data-theme="bloomberg"] .no-lay__item-value > textarea {
  background: #2a2a2a; border-color: #4a4a4a; color: #e8e8e8;
}
[data-theme="bloomberg"] .no-lay__item-value > input:focus { border-color: #d4a76a; box-shadow: 0 0 0 1px rgba(212,167,106,0.4); }
[data-theme="bloomberg"] .no-lay__separator { background: #3a3a3a; }


/* =============================================================
   THEME OVERRIDES — Slate
   ============================================================= */
[data-theme="slate"] .no-nav__header {
  background: linear-gradient(180deg, #52b788 0%, #2d6a4f 100%);
  border-bottom-color: #1b4332;
}
[data-theme="slate"] .no-nav__group-header { color: #1b4332; }
[data-theme="slate"] .no-nav__item[aria-selected="true"] {
  border-left-color: #2d6a4f;
  background: #d8f3dc;
  color: #1b4332;
}
[data-theme="slate"] .no-tl__header { color: #1b4332; }
[data-theme="slate"] .no-vg__category { color: #1b4332; }
[data-theme="slate"] .no-lay__group-header { color: #1b4332; }
[data-theme="slate"] .no-alert__thumb { background: linear-gradient(180deg, #52b788 0%, #2d6a4f 100%); }
[data-theme="slate"] .no-wait__title { color: #1b4332; }
