/* k3.css — regles del motor de blocs (de k3ml, com a CUENTOS_v8):
   només CSS Grid · mai margin · mai gap · mai flex · espaiat = padding.
   L'aspecte (colors, vores, tipografia) va a app.css. */

k-page, k-block, k-col { display: grid; min-width: 0; min-height: 0; }

/* block: una fila; les seves columnes (grid-template-columns el calcula ui.js a partir dels width) */
k-block { grid-auto-flow: column; align-items: stretch; }

/* column: apila els fills; align = start | center | end | stretch */
k-col { grid-auto-flow: row; align-content: start; }
k-col[align="center"] { align-content: center; align-items: center; }
k-col[align="end"] { align-content: end; justify-items: end; }
k-col[align="stretch"] { align-content: stretch; }
k-col[type="separator"] { pointer-events: none; }

/* blocs ancorats al viewport (modal): fora de flux, centrats; la columna 2 és el panell */
k-block[anchor="viewport"] {
  position: fixed; inset: 0; z-index: 20; overflow-y: auto; overscroll-behavior: contain;
  align-items: center; padding: 24px 16px;
  background: rgb(20 20 26 / .28);
}
k-block[anchor="viewport"] > k-col { grid-column: 2; }
.k-modal-open { overflow: hidden; }

/* k-table: amfitrió del canvas (js/components.js). La declaració es llegeix i es
   treu; a dins només hi queden canvas + capa de scroll (grid.js). */
k-table { display: block; position: relative; min-height: 0; overflow: hidden; }
