/**
 * Eigen styling voor de ruimte *rond* en *tussen* de componenten.
 * Alleen --primitives-* tokens; niets hardcoded, niets in shadow DOM.
 */

/* De drie panelen vullen de hoogte van het scherm. */
nldd-app-view,
nldd-navigation-split-view {
  block-size: 100dvh;
}

/* --- Formatieweergave: teams onder elkaar, plekken als tabelrijen --- */

.team {
  margin-block-end: var(--primitives-space-40);
}

.team:last-child {
  margin-block-end: 0;
}

.team__kop {
  display: flex;
  align-items: center;
  gap: var(--primitives-space-8);
  flex-wrap: wrap;
  margin-block-end: var(--primitives-space-12);
}

/* De cijfers naast een teamnaam: fte, kosten, bezetting. */
.team__cijfers {
  display: flex;
  gap: var(--primitives-space-12);
  flex-wrap: wrap;
  margin-inline-start: auto;
}

/* --- Organogram --- */

.organogram {
  display: flex;
  flex-direction: column;
  gap: var(--primitives-space-16);
}

.organogram__laag {
  display: flex;
  gap: var(--primitives-space-12);
  flex-wrap: wrap;
}

.organogram__kaart {
  flex: 1 1 240px;
  min-inline-size: 0;
}

/* Titel en bewerkknop op één regel in een organogramkaart. */
.kaartkop {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: var(--primitives-space-8);
}

/* Bezettingsbalkje in een organogramkaart. */
.bezetting {
  display: flex;
  gap: var(--primitives-space-2);
  margin-block-start: var(--primitives-space-8);
}

.bezetting__blok {
  block-size: var(--primitives-space-8);
  flex: 1 1 0;
  border-radius: var(--primitives-corner-radius-full, 999px);
  background: light-dark(
    var(--primitives-color-neutral-150),
    var(--primitives-color-neutral-700)
  );
}

.bezetting__blok[data-bezet='true'] {
  background: light-dark(
    var(--primitives-color-accent-500),
    var(--primitives-color-accent-400)
  );
}

/* --- Vergelijkweergave: scenario's naast elkaar --- */

/* Naast elkaar is het hele punt van deze weergave, dus de drempel ligt laag.
   Pas onder de 230px per kolom stapelen de kaarten. */
.vergelijk {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--primitives-space-16);
}

/* Een regel die in het ene scenario anders is dan in het andere. */
.verschil {
  display: flex;
  align-items: baseline;
  gap: var(--primitives-space-8);
  padding-block: var(--primitives-space-6);
}

.verschil + .verschil {
  border-block-start: 1px solid light-dark(
    var(--primitives-color-neutral-100),
    var(--primitives-color-neutral-750)
  );
}

/* --- Mensenweergave --- */

.mensen-kolommen {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--primitives-space-24);
  align-items: start;
}

/* --- Slepen --- */

/* Een plek die een gesleepte persoon kan ontvangen. */
.ontvangt {
  outline: 2px dashed light-dark(
    var(--primitives-color-accent-500),
    var(--primitives-color-accent-400)
  );
  outline-offset: 2px;
  border-radius: var(--primitives-corner-radius-200, 8px);
}

/* Breek tussen woorden, nooit middenin: "Programmamanage-r" leest als een
   typefout. Een woord dat echt niet past, kort af met een ellips. */
nldd-table-row nldd-text-cell,
nldd-table-row nldd-title-cell {
  overflow-wrap: normal;
  word-break: keep-all;
  hyphens: none;
}

/* Schaalgetal met zijn waarschuwing ernaast. */
.schaalrij {
  display: flex;
  align-items: center;
  gap: var(--primitives-space-6);
}

/* Naam, markering en het kruisje naast elkaar in de Wie-kolom. */
.wierij {
  display: flex;
  align-items: center;
  gap: var(--primitives-space-6);
  min-inline-size: 0;
}

/* De naam mag inkorten, het kruisje nooit. */
.wierij > nldd-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wierij > nldd-tooltip {
  margin-inline-start: auto;
  flex: none;
}

/* Een naam die je kunt oppakken. Geen pointer: dat is voor links. */
.sleepbaar {
  cursor: grab;
  touch-action: none;
}

body.sleept,
body.sleept .sleepbaar {
  cursor: grabbing;
  user-select: none;
}

/* Het label dat tijdens het slepen aan de muis hangt. */
.sleepbeeld {
  position: fixed;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  pointer-events: none;
  padding: var(--primitives-space-4) var(--primitives-space-8);
  border-radius: var(--primitives-corner-radius-200, 8px);
  font-size: var(--primitives-font-size-90);
  background: light-dark(
    var(--primitives-color-neutral-0),
    var(--primitives-color-neutral-750)
  );
  color: light-dark(
    var(--primitives-color-neutral-900),
    var(--primitives-color-neutral-25)
  );
  box-shadow: var(--primitives-box-shadows-level-3, 0 4px 12px rgb(0 0 0 / 0.25));
}

/* --- Inspector --- */

.inspector-leeg {
  padding: var(--primitives-space-24);
}

.kenmerk {
  display: flex;
  justify-content: space-between;
  gap: var(--primitives-space-12);
  padding-block: var(--primitives-space-6);
}

.kenmerk + .kenmerk {
  border-block-start: 1px solid light-dark(
    var(--primitives-color-neutral-100),
    var(--primitives-color-neutral-750)
  );
}

/* Tags op een rij, bijvoorbeeld expertise of de markeringen bij een persoon. */
.tagrij {
  display: flex;
  align-items: center;
  gap: var(--primitives-space-6);
  flex-wrap: wrap;
}

/* --- Wachtwoordscherm --- */

/* Volledig ondoorzichtig: door een doorschijnende laag zijn de namen op de
   plaat nog te lezen, en dat is precies wat het slot moet voorkomen. */
.slot {
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow: auto;
  background: light-dark(
    var(--primitives-color-neutral-25),
    var(--primitives-color-neutral-900)
  );
}

/* Het formulier staat gecentreerd, niet bovenaan geplakt. */
.slot nldd-simple-section {
  min-block-size: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
