/* NEXAKOR Phase 10 R8 - dense data surfaces + transparent dock + deterministic workspace */
:root{
  --nx-r8-table-font:10px;
  --nx-r8-table-head-font:9px;
  --nx-r8-row-h:25px;
  --nx-r8-head-h:24px;
  --nx-r8-cell-x:5px;
  --nx-r8-cell-y:2px;
}

/* Global information density: ERP data tables should show materially more rows without becoming cramped. */
#page table,.embedded-content table,.data-grid table,.table-wrap table,.table-shell table,.data-table-wrap table{
  font-size:var(--nx-r8-table-font)!important;
  line-height:1.16!important;
}
#page table thead th,.embedded-content table thead th,.data-grid table thead th,.table-wrap table thead th,.table-shell table thead th,.data-table-wrap table thead th{
  height:var(--nx-r8-head-h)!important;
  min-height:var(--nx-r8-head-h)!important;
  padding:var(--nx-r8-cell-y) var(--nx-r8-cell-x)!important;
  font-size:var(--nx-r8-table-head-font)!important;
  line-height:1.05!important;
  white-space:nowrap;
}
#page table tbody td,.embedded-content table tbody td,.data-grid table tbody td,.table-wrap table tbody td,.table-shell table tbody td,.data-table-wrap table tbody td{
  height:var(--nx-r8-row-h)!important;
  min-height:var(--nx-r8-row-h)!important;
  padding:var(--nx-r8-cell-y) var(--nx-r8-cell-x)!important;
  font-size:var(--nx-r8-table-font)!important;
  line-height:1.15!important;
  vertical-align:middle!important;
}
#page table tbody tr,.embedded-content table tbody tr,.data-grid table tbody tr,.table-wrap table tbody tr,.table-shell table tbody tr,.data-table-wrap table tbody tr{
  height:var(--nx-r8-row-h)!important;
  min-height:var(--nx-r8-row-h)!important;
}
#page table .btn,#page table button,.embedded-content table .btn,.embedded-content table button,.data-grid table .btn,.data-grid table button{
  min-height:24px!important;
  height:24px!important;
  padding:2px 6px!important;
  font-size:10.5px!important;
  line-height:1!important;
}
#page table input,#page table select,.embedded-content table input,.embedded-content table select,.data-grid table input,.data-grid table select{
  min-height:25px!important;
  height:25px!important;
  padding:2px 5px!important;
  font-size:10.5px!important;
}

/* The historical #page .data-grid td rule has higher specificity than the
   generic table rules above. Apply density to actual record cells, including
   the embedded workspace iframe, without compressing multiline content. */
#page .data-grid .dg-table tbody tr,
.embedded-content #page .data-grid .dg-table tbody tr{height:var(--nx-r8-row-h)!important;min-height:0!important}
#page .data-grid .dg-table tbody td,
.embedded-content #page .data-grid .dg-table tbody td{
  box-sizing:border-box!important;
  height:var(--nx-r8-row-h)!important;
  min-height:0!important;
  padding:var(--nx-r8-cell-y) var(--nx-r8-cell-x)!important;
  font-size:var(--nx-r8-table-font)!important;
  line-height:1.15!important;
}
#page .data-grid .dg-table thead th,
.embedded-content #page .data-grid .dg-table thead th{
  box-sizing:border-box!important;
  height:var(--nx-r8-head-h)!important;
  min-height:0!important;
  padding:var(--nx-r8-cell-y) var(--nx-r8-cell-x)!important;
  font-size:var(--nx-r8-table-head-font)!important;
}
/* Other record lists use plain tables rather than NX.dataGrid. Keep those
   equally compact; controls can still grow their row when they need space. */
#page :is(.table-wrap,.table-shell,.data-table-wrap) table tbody td{
  box-sizing:border-box!important;
  height:var(--nx-r8-row-h)!important;
  min-height:0!important;
  padding:var(--nx-r8-cell-y) var(--nx-r8-cell-x)!important;
  font-size:var(--nx-r8-table-font)!important;
  line-height:1.15!important;
}
#page :is(.table-wrap,.table-shell,.data-table-wrap) table thead th{
  box-sizing:border-box!important;
  height:var(--nx-r8-head-h)!important;
  min-height:0!important;
  padding:var(--nx-r8-cell-y) var(--nx-r8-cell-x)!important;
  font-size:var(--nx-r8-table-head-font)!important;
}

/* FlowDock: glass/translucent, never a black opaque slab. */
html[data-nav-family="dock"] .nx-v426-dock,
html[data-nav-mode="flowdock"] .nx-v426-dock{
  background:linear-gradient(135deg,color-mix(in srgb,var(--surface,#fff) 92%,transparent),color-mix(in srgb,var(--surface,#fff) 87%,var(--primary,#2563eb) 13%))!important;
  border:1px solid color-mix(in srgb,var(--ink,#0f172a) 26%,transparent)!important;
  box-shadow:0 14px 40px rgba(15,23,42,.16),inset 0 1px 0 rgba(255,255,255,.42)!important;
  backdrop-filter:blur(22px) saturate(145%)!important;
  -webkit-backdrop-filter:blur(22px) saturate(145%)!important;
  padding:6px 8px!important;
  gap:5px!important;
}
html[data-nav-family="dock"] .nx-v426-dock .nx-v426-module,
html[data-nav-mode="flowdock"] .nx-v426-dock .nx-v426-module,
html[data-nav-family="dock"] .nx-v426-dock .nx-v430-dock-home,
html[data-nav-mode="flowdock"] .nx-v426-dock .nx-v430-dock-home{
  background:color-mix(in srgb,var(--surface,#fff) 88%,transparent)!important;
  border:1px solid color-mix(in srgb,var(--ink,#0f172a) 20%,transparent)!important;
  box-shadow:none!important;
  color:var(--ink,#0f172a)!important;
}
html[data-nav-family="dock"] .nx-v426-dock .nx-v426-module:hover,
html[data-nav-mode="flowdock"] .nx-v426-dock .nx-v426-module:hover{
  background:color-mix(in srgb,var(--primary,#2563eb) 13%,var(--surface,#fff) 45%)!important;
  border-color:color-mix(in srgb,var(--primary,#2563eb) 48%,transparent)!important;
}
html[data-nav-family="dock"] .nx-v426-dock .nx433-icon-wrap,
html[data-nav-mode="flowdock"] .nx-v426-dock .nx433-icon-wrap,
html[data-nav-family="dock"] .nx-v426-dock .nx-v426-icon,
html[data-nav-mode="flowdock"] .nx-v426-dock .nx-v426-icon{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
/* An older "span:last-child" tooltip rule also matches the SVG wrapper,
   because it is the last child of the icon slot. Keep only the label hidden. */
html[data-nav-mode="flowdock"] .nx-v426-dock .nx-v426-module .nx-v426-icon > .nx433-icon-wrap,
html[data-nav-mode="flowdock"] .nx-v426-dock .nx-v430-dock-home .nx-v426-icon > .nx433-icon-wrap{
  position:static!important;
  inset:auto!important;
  display:inline-grid!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  width:30px!important;
  height:30px!important;
  max-width:none!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  pointer-events:auto!important;
}
/* Inline palette tokens on canonical icons are too pale on the glass surface.
   Keep the canonical SVG paths while making their strokes readable in both themes. */
html[data-nav-mode="flowdock"] .nx-v426-dock .nx433-icon-svg .stroke,
html[data-nav-mode="flowdock"] .nx-v426-dock .nx433-icon-svg .accent-stroke{
  stroke:var(--ink,#0f172a)!important;
  stroke-width:2.15!important;
}
html[data-nav-mode="flowdock"] .nx-v426-dock .nx433-icon-svg .fill{
  fill:var(--ink,#0f172a)!important;
  opacity:.42!important;
}
html[data-nav-mode="flowdock"] .nx-v426-dock .nx433-icon-svg .accent{
  fill:var(--ink,#0f172a)!important;
  opacity:.85!important;
}
html[data-nav-mode="flowdock"] .nx-v426-dock .nx-v430-dock-group>em{
  color:var(--ink,#0f172a)!important;
  opacity:.78!important;
}

/* Workspace recent/open rail: canonical module icons, balanced spacing, no clipped options. */
.nx-r8-window-rail{
  position:fixed;
  left:8px;
  top:92px;
  bottom:58px;
  width:58px;
  z-index:1492;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  padding:7px 5px;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:thin;
  border:1px solid color-mix(in srgb,var(--line,#cbd5e1) 55%,transparent);
  border-radius:16px;
  background:color-mix(in srgb,var(--surface,#fff) 72%,transparent);
  box-shadow:0 16px 38px rgba(15,23,42,.14);
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
}
.nx-r8-window-rail:empty{display:none!important}
.nx-r8-window-rail button{
  position:relative;
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  padding:0!important;
  border:1px solid transparent!important;
  border-radius:12px!important;
  background:transparent!important;
  color:var(--ink,#0f172a)!important;
  box-shadow:none!important;
  overflow:hidden;
}
.nx-r8-window-rail button:hover{background:color-mix(in srgb,var(--primary,#2563eb) 10%,transparent)!important;border-color:color-mix(in srgb,var(--primary,#2563eb) 28%,transparent)!important}
.nx-r8-window-rail button.active{background:color-mix(in srgb,var(--primary,#2563eb) 15%,transparent)!important;border-color:color-mix(in srgb,var(--primary,#2563eb) 48%,transparent)!important}
.nx-r8-window-rail button.minimized{opacity:.58}
.nx-r8-window-rail .nx-r8-rail-icon{display:grid;place-items:center;width:28px;height:28px;overflow:visible}
.nx-r8-window-rail .nx-r8-rail-icon .nx433-icon-wrap,.nx-r8-window-rail .nx-r8-rail-icon .nx-module-svg{width:24px!important;height:24px!important;background:transparent!important;border:0!important;box-shadow:none!important}
body.nx-r8-window-rail-active>.nx-v431-quickrail{display:none!important}
/* The V4.36 hotfix turns the old recent-windows dock into a second left rail.
   R8's canonical rail replaces it whenever desktop windows are open. */
@media(min-width:1101px){
  html.nx436-hotfix-applied body.nx-r8-window-rail-active .workspace-dock,
  body.nx-r8-window-rail-active .workspace-dock{display:none!important}
  body.nx-r8-window-rail-active .nx-v431-quickrail{display:none!important}
  body.nx-r8-window-rail-active .workspace-content:has(.workspace-window:not(.minimized)) .workspace-home-scroll{display:none!important}
  html.nx436-hotfix-applied[data-nav-mode="flowdock"] body.nx-r8-window-rail-active .workspace-content:has(.workspace-dock:not(:empty)) .workspace-stage,
  html[data-nav-mode="flowdock"] body.nx-r8-window-rail-active .workspace-stage{
    inset:0 0 104px 6px!important;
  }
}
body.nx-r8-window-rail-active .main{padding-left:64px!important}
html[data-nav-family="sidebar"] body.nx-r8-window-rail-active .main{padding-left:0!important}
html[data-nav-family="sidebar"] .nx-r8-window-rail{left:auto!important;right:8px!important;border-radius:16px!important}

/* Deterministic tiled workspace: no gaps, accidental overlap or off-screen windows. */
.workspace-stage{padding:5px!important;box-sizing:border-box!important}
.workspace-window:not(.maximized){min-width:360px!important;min-height:250px!important;border-radius:10px!important}
.workspace-window.nx-r8-tiled:not(.maximized){min-width:260px!important;min-height:160px!important}
.workspace-window.nx-r8-tiled{transition:left .12s ease,top .12s ease,width .12s ease,height .12s ease,box-shadow .12s ease!important}
.workspace-window.nx-r8-tiled .workspace-window-head{height:34px!important;min-height:34px!important}
.workspace-window.nx-r8-tiled .workspace-window-actions .window-btn{width:26px!important;height:26px!important;min-width:26px!important}
.workspace-window.focused{box-shadow:0 18px 46px rgba(15,23,42,.20)!important;border-color:color-mix(in srgb,var(--primary,#2563eb) 42%,var(--line,#cbd5e1))!important}
.workspace-dock{gap:4px!important;padding:3px 6px!important;overflow-x:auto!important;overflow-y:hidden!important}
.workspace-dock-item{height:28px!important;min-width:88px!important;max-width:150px!important;padding:3px 7px!important;font-size:10.5px!important}
.workspace-dock-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-dock-icon{display:grid;place-items:center;width:20px;height:20px;overflow:hidden}
.workspace-dock-icon .nx433-icon-wrap,.workspace-dock-icon .nx-module-svg{width:18px!important;height:18px!important}

@media(max-width:1100px){
  body.nx-r8-window-rail-active .main{padding-left:0!important}
  .nx-r8-window-rail{display:none!important}
  .workspace-window:not(.maximized){min-width:320px!important}
}
@media(max-width:639px){
  :root{--nx-r8-table-font:10.5px;--nx-r8-row-h:30px;--nx-r8-cell-x:5px}
}
