/* Three density modes. Domain modules own their grids, canvases and docks. */
[data-nec-layout="reading"] { --nec-page-width: 1200px; --nec-page-gap: 24px; }
[data-nec-layout="operator"] { --nec-page-width: none; --nec-page-gap: 16px; }
[data-nec-layout="canvas"] { --nec-page-width: none; --nec-page-gap: 8px; }
.nec-page { width: 100%; max-width: var(--nec-page-width, 1200px); margin-inline: auto; padding-inline: 16px; }
.nec-page-header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 16px; padding-block: 16px; border-bottom: 1px solid var(--nec-line); }
.nec-page-header h1 { font: 600 var(--nec-type-title)/1.15 var(--nec-font-editorial); margin: 0; }
.nec-section-title { font: 600 var(--nec-type-heading)/1.2 var(--nec-font-editorial); }
.nec-table-wrap { max-width: 100%; overflow-x: auto; }
.nec-table-wrap table { width: 100%; border-collapse: collapse; font: var(--nec-type-control)/1.5 var(--nec-font-ui); }
.nec-table-wrap :is(th, td) { padding: 8px 12px; border-bottom: 1px solid var(--nec-line); text-align: left; }
@media (pointer: coarse), (max-width: 768px) {
  .nec-page-header { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto; transition-duration: .01ms; animation-duration: .01ms; animation-iteration-count: 1; }
}
