.wrapper-f8edc7e {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}

.avatarButton-f8edc7e {
  display: inline-flex;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  border-radius: var(--radius-full);
}

.avatarButton-f8edc7e:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.panel-f8edc7e {
  position: absolute;
  right: 0;
  top: calc(100% + 0.25rem);
  min-width: 9rem;
  z-index: var(--z-dropdown-panel);
  background: var(--color-dropdown-bg);
  border: 1px solid var(--color-dropdown-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-dropdown);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.panel-f8edc7e[data-open="false"] {
  display: none;
}

.identityBlock-f8edc7e {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--color-dropdown-border);
}

.fullName-f8edc7e {
  color: var(--color-text-main);
  font-size: var(--text-sm);
  line-height: 1.2;
  font-weight: var(--font-bold);
}

.titlePosition-f8edc7e {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  line-height: 1.2;
}

.menuItem-f8edc7e {
  display: block;
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 0;
  background: transparent;
  color: var(--color-text-main);
  text-decoration: none;
  text-align: left;
  font-size: var(--text-sm);
}

.menuItem-f8edc7e:hover {
  background: var(--color-dropdown-item-hover);
}

.menuItem-f8edc7e:focus-visible {
  background: var(--color-dropdown-item-hover);
  box-shadow: inset 0 0 0 2px var(--color-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.menuDivider-f8edc7e {
  border: 0;
  border-top: 1px solid var(--color-dropdown-border);
  margin: var(--space-1) 0;
  width: 100%;
}


.wrap-a2329ca {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
}

/* Trigger: ButtonView (Tertiary, Small, Pill). */
.triggerIcon-a2329ca {
  display: inline-flex;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
}

.items-a2329ca {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-2);
}

.items-a2329ca > *,
.items-a2329ca :where(button, a, [role="button"]) {
  width: 100%;
  box-sizing: border-box;
}


.group-d536e6f {
  margin: 0;
  padding: 0;
  border: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
  flex-shrink: 0;
}

.legend-d536e6f {
  padding: 0;
  margin: 0 0 var(--space-1-5);
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
}

.options-d536e6f {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.option-d536e6f {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3) 0.85rem;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  background: var(--color-card-bg);
  cursor: pointer;
  min-width: 0;
  transition:border-color var(--duration-fast) ease,
    background-color var(--duration-fast) ease,
    box-shadow var(--duration-fast) ease;
}

.option-d536e6f:hover {
  border-color: var(--color-accent);
  background: var(--color-nav-icon-hover);
}

.option-d536e6f:has(input:checked) {
  border-color: var(--color-accent);
  background: var(--color-nav-icon-hover);
  box-shadow: 0 0 0 1px var(--color-accent);
}

.option-d536e6f:has(input:focus-visible) {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.radio-d536e6f {
  margin-top: var(--space-2);
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  accent-color: var(--color-accent);
}

.content-d536e6f {
  flex: 1 1 auto;
  min-width: 0;
}


.headline-fdc9382 {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  min-width: 0;
}

.compact-fdc9382 {
  gap: var(--space-1-5);
}

.iconBox-fdc9382 {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-md);
  background: var(--color-nav-icon-hover, rgba(0, 0, 0, 0.04));
  color: var(--color-text-muted);
  font-size: var(--text-lg);
  line-height: 1;
}

.compact-fdc9382 .iconBox-fdc9382 {
  width: 1.75rem;
  height: 1.75rem;
  font-size: var(--text-base);
  border-radius: var(--radius-md);
}

.iconImg-fdc9382 {
  max-width: 2.25rem;
  max-height: 2.25rem;
  object-fit: contain;
  border-radius: var(--radius-md);
}

.compact-fdc9382 .iconImg-fdc9382 {
  max-width: 1.75rem;
  max-height: 1.75rem;
}

.textBlock-fdc9382 {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.title-fdc9382 {
  font-weight: var(--font-bold);
  font-size: var(--text-base);
  line-height: 1.25;
  word-break: break-word;
}

.compact-fdc9382 .title-fdc9382 {
  font-size: var(--text-sm);
}

.subtitle-fdc9382 {
  font-size: var(--text-sm);
  line-height: 1.2;
  color: var(--color-text-muted);
  word-break: break-word;
}

.protection-fdc9382 {
  font-size: var(--text-xs);
  line-height: 1.25;
  color: var(--color-text-muted);
  word-break: break-word;
}

/* Signature actor (signed-files) — user + credential, no DTO metadata */
.sigActor-fdc9382 {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  min-width: 0;
}

.sigActorIcon-fdc9382 {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  font-size: var(--text-md);
  color: var(--color-text-muted);
}

.sigActorLines-fdc9382 {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.sigActorPrimary-fdc9382 {
  font-size: var(--text-sm);
  line-height: 1.3;
  word-break: break-word;
}

.sigActorMeta-fdc9382 {
  font-size: var(--text-xs);
  line-height: 1.25;
  color: var(--color-text-muted);
  word-break: break-word;
}


.root-d93cb10 {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.label-d93cb10 {
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  color: var(--color-text);
}

.gridScroll-d93cb10 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
  gap: var(--space-2);
  max-height: min(40vh, 16rem);
  overflow-y: auto;
  padding: var(--space-1);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-elevated);
}

.tile-d93cb10 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1-5);
  margin: 0;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-text);
  cursor: pointer;
  min-width: 0;
}

.tile-d93cb10:hover {
  background: var(--color-nav-icon-hover);
}

.tileSelected-d93cb10 {
  border-color: var(--color-accent);
  background: var(--color-nav-icon-hover);
}

.tileImg-d93cb10 {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: contain;
}

.tileCaption-d93cb10 {
  font-size: var(--text-xs);
  line-height: 1.2;
  text-align: center;
  word-break: break-word;
  color: var(--color-text-muted);
  max-width: 100%;
}

.status-d93cb10 {
  grid-column: 1 / -1;
  margin: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.tile-d93cb10:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}


.root-77b3ff9 {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  box-sizing: border-box;
  /* Default fill when no role ring; overridden by conic-gradient when roles are present. */
  background: var(--color-cta);
  color: var(--color-on-cta);
  font-weight: var(--font-bold);
  line-height: 1;
}

.inner-77b3ff9 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: var(--radius-full);
  overflow: hidden;
  background: var(--color-cta);
  color: inherit;
  box-sizing: border-box;
}

.root-77b3ff9[data-has-roles="true"] .inner-77b3ff9 {
  /* Shrink the disc so the outer conic-gradient shows as a donut ring. */
  width: calc(100% - 2 * var(--avatar-ring-width, 2px));
  height: calc(100% - 2 * var(--avatar-ring-width, 2px));
}

.sm-77b3ff9 {
  width: 2.2rem;
  height: 2.2rem;
  font-size: var(--text-sm);
  --avatar-ring-width: 2.5px;
}

.md-77b3ff9 {
  width: 2.475rem;
  height: 2.475rem;
  font-size: var(--text-base);
  --avatar-ring-width: 3.5px;
}

.lg-77b3ff9 {
  width: 4.4rem;
  height: 4.4rem;
  font-size: var(--text-lg);
  --avatar-ring-width: 6px;
}

.xl-77b3ff9 {
  width: 13.2rem;
  height: 13.2rem;
  font-size: 3.3rem;
  --avatar-ring-width: 9px;
}

.image-77b3ff9 {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.initials-77b3ff9 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}


.cropViewport-582f406 {
  position: relative;
  width: 18.75rem;
  height: 18.75rem;
  margin: 0 auto;
  border-radius: 9999px;
  overflow: hidden;
  background: var(--color-crop-viewport-bg);
  touch-action: none;
  cursor: grab;
}

.cropViewportDragging-582f406 {
  cursor: grabbing;
}

.cropCanvas-582f406 {
  width: 100%;
  height: 100%;
  display: block;
}

.cropMask-582f406 {
  position: absolute;
  inset: 0;
  border-radius: 9999px;
  box-shadow: 0 0 0 9999px rgb(0 0 0 / 35%);
  pointer-events: none;
}

.cropDragHint-582f406 {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.45;
  transition: opacity 0.35s ease;
  animation: cropDragHintPulse 2.4s ease-in-out infinite;
}

.cropDragHintHidden-582f406 {
  opacity: 0;
  animation: none;
}

@keyframes cropDragHintPulse {
  0%,
  100% {
    opacity: 0.35;
  }

  50% {
    opacity: 0.55;
  }
}

.cropDragHintArrowTop-582f406 {
  position: absolute;
  color: rgb(255 255 255 / 70%);
  width: 1.5rem;
  height: 1.5rem;
  top: 12%;
  left: 50%;
  transform: translateX(-50%);
}

.cropDragHintArrowBottom-582f406 {
  position: absolute;
  color: rgb(255 255 255 / 70%);
  width: 1.5rem;
  height: 1.5rem;
  bottom: 12%;
  left: 50%;
  transform: translateX(-50%);
}

.cropDragHintArrowLeft-582f406 {
  position: absolute;
  color: rgb(255 255 255 / 70%);
  width: 1.5rem;
  height: 1.5rem;
  left: 12%;
  top: 50%;
  transform: translateY(-50%);
}

.cropDragHintArrowRight-582f406 {
  position: absolute;
  color: rgb(255 255 255 / 70%);
  width: 1.5rem;
  height: 1.5rem;
  right: 12%;
  top: 50%;
  transform: translateY(-50%);
}

.zoomRow-582f406 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.zoomRow-582f406 input {
  flex: 1;
}


/* Drawer toolbar: buffer-size selector and any future controls. */
.toolbar-fde11c6 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-bottom: var(--space-2);
  border-bottom: 1px dashed var(--color-card-border);
  margin-bottom: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text-main);
}

.toolbarLabel-fde11c6 {
  color: var(--color-text-main);
  font-weight: var(--font-regular);
  user-select: none;
}

.toolbarSelect-fde11c6 {
  padding: var(--space-1) var(--space-2);
  font-size: var(--text-sm);
  background: var(--color-bg-main);
  color: var(--color-text-main);
  border: 1px solid var(--color-dropdown-border);
  border-radius: var(--radius-md);
  cursor: pointer;
}

.toolbarSelect-fde11c6:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 1px;
}

/* Horizontal scroll around the shared flat/dense TableView */
.tableScroller-fde11c6 {
  overflow-x: auto;
  width: 100%;
}

/* Shared Table grows the first column; hug Method and give leftover to Endpoint. */
.tableScroller-fde11c6 table th:first-child:not(:last-child),
.tableScroller-fde11c6 table td:first-child:not(:last-child) {
  width: 1%;
  white-space: nowrap;
}

.tableScroller-fde11c6 table th:nth-child(2):not(:first-child):not(:last-child),
.tableScroller-fde11c6 table td:nth-child(2):not(:first-child):not(:last-child) {
  width: auto;
  text-align: left;
}

/* Per-column layout overrides for the dense request log (merged via TableCell class) */
.cellMethod-fde11c6 {
  text-transform: uppercase;
  font-weight: var(--font-bold);
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
    monospace;
}

.cellEndpoint-fde11c6 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
    monospace;
}

.cellPage-fde11c6 {
  max-width: 18rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--color-text-main);
  opacity: 0.85;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
    monospace;
}

.cellStarted-fde11c6 {
  width: 7rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
    monospace;
}

.cellNumeric-fde11c6 {
  font-variant-numeric: tabular-nums;
  width: 5rem;
  white-space: nowrap;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
    monospace;
}


.wrap-a573d68 {
  display: flex;
  align-items: flex-end;
  gap: var(--space-2);
  text-decoration: none;
  color: inherit;
  font-weight: var(--font-bold);
}

.logo-a573d68 {
  display: block;
  width: 2rem;
  height: 2rem;
  border-radius: var(--radius-sm);
  object-fit: contain;
}

.productName-a573d68 {
  font-size: var(--text-md);
}


/* Canonical button layout and sizes. Color variants live in button_variants.module.css. */

.base-b228d8c {
  display: inline-flex;
  gap: var(--space-1);
  align-items: center;
  justify-content: center;
  font-weight: var(--font-regular);
  text-align: center;
  border-radius: var(--radius-md);
  /* Equal border box for every variant: filled tones use transparent borders. */
  border-style: solid;
  border-width: 1px;
  border-color: transparent;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
  vertical-align: middle;
  line-height: 1.25;
  /* data-testid lives on this element — keep it the real hit target. */
  position: relative;
  pointer-events: auto;
}

.base-b228d8c:focus-visible {
  box-shadow: var(--focus-ring-button);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.base-b228d8c:disabled,
.base-b228d8c[aria-disabled="true"] {
  cursor: not-allowed;
  background: var(--color-button-disabled-bg);
  color: var(--color-button-disabled-text);
  border-color: transparent;
}

/* Shape: pill corners for compact menu / status triggers. */
.pill-b228d8c {
  border-radius: var(--radius-full);
}

.label-b228d8c {
  display: inline-flex;
  align-items: center;
  pointer-events: none;
}

/* Sizes own min-height, padding, and typography — never variants. */
.small-b228d8c {
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-sm);
  min-height: 2.5rem;
}

.baseSize-b228d8c {
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
  min-height: 2.75rem;
}

.large-b228d8c {
  padding: var(--space-2) var(--space-5);
  font-size: var(--text-base);
  min-height: 3rem;
}

@media (max-width: 39.99rem) {
  .small-b228d8c {
    padding: var(--space-1-5) var(--space-2);
  }

  .baseSize-b228d8c {
    padding: var(--space-1-5) var(--space-3);
  }

  .large-b228d8c {
    padding: var(--space-2) var(--space-4);
  }
}

/* Icon-only: square hit target matching the size's min-height. */
.iconOnly-b228d8c {
  flex-shrink: 0;
}

.iconOnly-b228d8c.small-b228d8c {
  min-width: 2.5rem;
  min-height: 2.5rem;
  padding: var(--space-1-5);
}

.iconOnly-b228d8c.baseSize-b228d8c {
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: var(--space-2);
}

.iconOnly-b228d8c.large-b228d8c {
  min-width: 3rem;
  min-height: 3rem;
  padding: var(--space-2);
}

.iconOnly-b228d8c svg {
  width: 1.15em;
  height: 1.15em;
}


/* Shared button color variants — size/layout live in button.module.css. */

.primary-d5ac25a {
  color: var(--color-on-cta);
  background: var(--color-cta);
  border-color: transparent;
}

.primary-d5ac25a:hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--color-cta-hover);
}

.secondary-d5ac25a {
  color: var(--color-secondary-fg);
  background: var(--color-secondary-bg);
  border-color: transparent;
}

.secondary-d5ac25a:hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--color-secondary-hover-bg);
}

.tertiary-d5ac25a {
  color: var(--color-text-main);
  background: var(--color-button-alt-bg);
  border-color: var(--color-button-alt-border);
}

.tertiary-d5ac25a:hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--color-button-alt-hover);
}

.danger-d5ac25a {
  color: var(--color-accent-text);
  background: var(--color-danger-solid);
  border-color: transparent;
}

.danger-d5ac25a:hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--color-danger-solid-hover);
}


/* Card: padding from --card-padding (8px mobile / 24px desktop). Pages do not add card padding. */
.root-e643a9e {
  width: 100%;
  background: var(--color-card-bg);
  color: var(--color-text-main);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  box-shadow: var(--color-card-shadow);
  padding: var(--card-padding);
  box-sizing: border-box;
}

.root-e643a9e[data-collapsible="true"] {
  padding: 0;
  --collapsible-chrome-inset: var(--card-padding);
}

.root-e643a9e[data-collapsible="true"] .content-e643a9e {
  padding: 0 var(--card-padding) var(--card-padding);
}

.root-e643a9e[data-collapsible="true"] .lead-e643a9e {
  padding-left: var(--card-padding);
  padding-right: var(--card-padding);
}

/* Lead region between the title row and the body: the intro paragraph (what the card holds),
   then the system record strip (where its record stands). One gap, one bottom margin; the
   strip's container query resolves against the lead's width. */
.lead-e643a9e {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
  min-width: 0;
  flex-shrink: 0;
  container-type: inline-size;
}

.lead-e643a9e > [data-component="intro-text"] {
  margin-bottom: 0;
}

/* Min-height so content starts at same vertical position with or without title actions.
   flex-shrink: 0 keeps title actions hittable in height-constrained ListColumn / vsplit cards
   (otherwise the table body can shrink the header and overflow:hidden clips the click target). */
.titleRow-e643a9e {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--layout-gap);
  margin-bottom: var(--space-4);
  min-width: 0;
  min-height: 2.25rem;
  flex-shrink: 0;
}

/* Three-column header (title | center | actions). Narrow cards wrap center below. */
.titleRow-e643a9e[data-has-center="true"] {
  display: block;
  container-type: inline-size;
}

.titleGrid-e643a9e {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas: "title center actions";
  align-items: center;
  gap: var(--layout-gap);
  min-height: 2.25rem;
}

.titleGrid-e643a9e > .titleContent-e643a9e,
.titleGrid-e643a9e > .title-e643a9e {
  grid-area: title;
  justify-self: start;
}

.titleGrid-e643a9e > .titleCenter-e643a9e {
  grid-area: center;
  justify-self: center;
  min-width: 0;
  text-align: center;
}

.titleGrid-e643a9e > .titleActions-e643a9e {
  grid-area: actions;
  justify-self: end;
}

@container (max-width: 60rem) {
  .titleGrid-e643a9e {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "title actions"
      "center center";
  }
}

.title-e643a9e {
  font-size: var(--text-lg);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
  margin: 0;
}

/* When the card has actions but no title text, the row still needs a flex sibling. */
.titleSpacer-e643a9e {
  flex: 1;
  min-width: 0;
}

.titleContent-e643a9e {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-1-5);
  margin: 0;
}

.titleCenter-e643a9e {
  min-width: 0;
}

/* .titleActions base layout lives in chrome.module.css (applied alongside this hook). */
/* Ensure spacing remains visible even when actions are wrapped inside a child container. */
.titleActions-e643a9e :where(button, a, [role="button"])+ :where(button, a, [role="button"]) {
  margin-left: var(--layout-gap);
}

.titleActionsError-e643a9e {
  margin-top: calc(-1 * var(--layout-gap));
  margin-bottom: var(--space-4);
}

.content-e643a9e {
  display: flex;
  flex-direction: column;
  min-width: 0;
  container-type: inline-size;
  gap: var(--card-content-gap);
}

/* Tighter gap when card children are panels (stack spacing matches PanelStackView). */
.content-e643a9e:has(> [data-panel="true"]) {
  gap: var(--layout-gap);
}

/* Fill / list-column modes: no gap — inner scroll regions own spacing. */
.root-e643a9e[data-fill-height="true"] .content-e643a9e,
.root-e643a9e[data-list-in-column="true"] .content-e643a9e {
  gap: 0;
}

/* When card fills height (e.g. document editor), card fills container and content scrolls internally */
.root-e643a9e[data-fill-height="true"] {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.root-e643a9e[data-fill-height="true"] .content-e643a9e {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Stretch the body (e.g. ListCardBodyView) so pane_fill / matrix scrollports get a definite
   height. Without this, flex-basis:0 table roots collapse to 0px and header actions stay in
   the DOM but are clipped by overflow:hidden — WebDriver sees them as covered by `.content`. */
.root-e643a9e[data-fill-height="true"] .content-e643a9e > * {
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  align-self: stretch;
}

/* Propagate the fill budget through CardBody::content's host to nested embeds
   (e.g. document PDF detail). Scoped to fill-height cards so content-sized forms
   are not forced into a flex-1 / height:100% layout. */
.root-e643a9e[data-fill-height="true"] .content-e643a9e [data-card-content-host="true"] {
  flex: 1 1 0%;
  min-height: 0;
  height: 100%;
}

.root-e643a9e[data-fill-height="true"] .content-e643a9e [data-card-content-host="true"] > * {
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
}

/* Propagate fill through CardBody::Panels when the stack is a single panel (PDF
   detail embed). Multi-panel stacks stay content-sized so settings cards do not
   stretch every section. */
.root-e643a9e[data-fill-height="true"] .content-e643a9e [data-panel-stack="true"]:has(> [data-panel="true"]:only-child) {
  flex: 1 1 0%;
  min-height: 0;
  height: 100%;
}

.root-e643a9e[data-fill-height="true"] .content-e643a9e [data-panel-stack="true"]:has(> [data-panel="true"]:only-child) > [data-panel="true"] {
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.root-e643a9e[data-fill-height="true"] .content-e643a9e [data-panel-stack="true"]:has(> [data-panel="true"]:only-child) > [data-panel="true"] > :last-child {
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Modal footer / error chrome: stay content-sized so Fill does not stretch buttons. */
.root-e643a9e[data-fill-height="true"] .content-e643a9e [data-card-content-host="true"] > [data-card-fill-fixed="true"] {
  flex: 0 0 auto;
  height: auto;
  min-height: 0;
}

/* Nested list body / table section markers must also consume the fill budget.
   Keep the page_layout listTableSection floor (12rem): `min-height: 0` here undid that
   floor and let CommitPlanBar + table toolbar starve matrix scrollports to 0px so
   thead delete-role buttons stayed in the DOM but were not WebDriver-hittable. */
.root-e643a9e[data-fill-height="true"] .content-e643a9e [data-list-grow="true"] {
  flex: 1 1 0%;
  min-height: 12rem;
}

/* Tall modal cards also use fill-height; keep min-height:0 so picker tables flex
   inside the dialog instead of overflowing under the backdrop. */
[data-component="modal"] .root-e643a9e[data-fill-height="true"] .content-e643a9e [data-list-grow="true"] {
  min-height: 0;
}

/* vSplit list column: never taller than the column, pass height to inner `Table` scrollports.
   Clip the body only — keep overflow off the root so `.titleRow` actions stay hittable when
   the column is height-constrained (Mac/DPR subpixel edges otherwise fall through to
   MainArea contentHost). */
.root-e643a9e[data-list-in-column="true"] {
  min-height: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  overflow: visible;
}

/* Use 0 1 auto (not 1 1 0) so the card can size to its table: with height:auto a flex:1/1/0
   child in a flex column can resolve to 0 and hide the list body entirely. */
.root-e643a9e[data-list-in-column="true"] .content-e643a9e {
  flex: 0 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Island bodies (`CardBody::fill`, e.g. training matrices) in a list column: let the content
   host shrink with the card so nested list bodies / table scrollports take the slack instead of
   the card overflowing its (overflow:hidden) page root on short / mobile viewports. */
.root-e643a9e[data-list-in-column="true"] .content-e643a9e > [data-card-content-host="true"] {
  flex: 0 1 auto;
  min-height: 0;
  overflow: hidden;
}

/* Grid cell: stretch to match siblings in a CSS grid row; content grows so footers can pin.
   No overflow:hidden and no min-height:0 on the body — those collapse fixed_cap tables in
   auto-sized dashboard rows (listCardBody was 2px). Intrinsic table height must contribute
   to the grid row; height:100% only fills after the row is sized. */
.root-e643a9e[data-grid-cell="true"] {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
}

.root-e643a9e[data-grid-cell="true"] .content-e643a9e {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}


/* Stable host for CardBody::Content so Fill-height flex chains reach nested embeds.
   Do not set flex-grow or height:100% here — that breaks content-sized cards (forms).
   Fill cards stretch `.content > *` in card.module.css and propagate via the
   `[data-card-content-host] > *` rule there. */
.contentHost-9e5cc64 {
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-self: stretch;
}


/* CardMessage: min height fits content + 1rem top/bottom; expands to fill when in empty card. */

.root-8c27e33 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 0;
  flex: 1 1 auto;
  width: 100%;
  padding: var(--space-4);
  /* Solid frame plus a leading tone bar: a dashed border read as a drop zone. */
  border: 1px solid var(--tone-border, var(--color-card-border));
  border-inline-start: 3px solid var(--tone-fg, var(--color-text-muted));
  border-radius: var(--radius-md);
  box-sizing: border-box;
  color: var(--tone-fg, var(--color-text-main));
  background: var(--tone-bg, transparent);
  /* Error messages append a labelled technical-detail line separated by "\n". */
  white-space: pre-line;
}


.cardsRow-ebbd700 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr));
  gap: var(--space-2);
  width: 100%;
  min-width: 0;
  align-items: stretch;
}

.cardColumn-ebbd700 {
  display: flex;
  flex-direction: column;
  min-width: 0;
  /* Let the grid item’s min-content include card tables (do not force height:100% alone). */
}

.cardColumn-ebbd700 > * {
  flex: 1 1 auto;
  min-width: 0;
  /* Fill the stretched grid cell after row height is established from content. */
  height: 100%;
  box-sizing: border-box;
}


/* Replaces center_card_alone.html: full-height main, centered card, top-right buttons */
.main-e5c0e6c {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--color-bg-main);
  color: var(--color-text-main);
}

.inner-e5c0e6c {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  position: relative;
}

@media (min-width: 40rem) {
  .inner-e5c0e6c {
    justify-content: center;
  }
}

.topButtons-e5c0e6c {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  display: flex;
  gap: var(--layout-gap);
}

.centerColumn-e5c0e6c {
  display: flex;
  flex-direction: column;
  align-self: center;
  align-items: center;
  padding: var(--space-6);
  margin-bottom: 0;
  width: 100%;
  max-width: 42rem;
}

@media (min-width: 40rem) {
  .centerColumn-e5c0e6c {
    width: auto;
    margin-bottom: 12rem;
  }
}

.logoWrap-e5c0e6c {
  display: none;
}

@media (min-width: 40rem) {
  .logoWrap-e5c0e6c {
    display: block;
  }
}

.logoLink-e5c0e6c {
  text-decoration: none;
  color: inherit;
}

.pageTitle-e5c0e6c {
  margin: 0 0 var(--space-3);
  text-align: center;
  font-weight: var(--font-bold);
  font-size: var(--text-xl);
  line-height: 1.2;
  color: var(--color-text-main);
}

@media (min-width: 40rem) {
  .pageTitle-e5c0e6c {
    font-size: 2.25rem;
    letter-spacing: -0.025em;
    line-height: 1.1;
  }
}

.cardWrap-e5c0e6c {
  width: 100%;
  max-width: 42rem;
  margin-top: 1px;
  background: var(--color-card-bg);
  color: var(--color-text-main);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  box-shadow: var(--color-card-shadow);
  padding: var(--card-padding);
  box-sizing: border-box;
}

.cardIcon-e5c0e6c {
  margin-bottom: var(--space-4);
  width: 100%;
  color: var(--color-text-muted);
  fill: currentColor;
}

.cardIcon-e5c0e6c svg {
  width: 100%;
  height: auto;
  max-height: 12rem;
}

.cardIcon-e5c0e6c:empty {
  display: none;
}

.cardContent-e5c0e6c {
  /* Content slot */
}

.messageBlock-e5c0e6c {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: center;
}

.messageBlockCentered-e5c0e6c {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: center;
  text-align: center;
}


.root-293505b {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  cursor: pointer;
  user-select: none;
}

.rootDisabled-293505b {
  cursor: not-allowed;
  opacity: 0.7;
}

.input-293505b {
  width: 1rem;
  height: 1rem;
  margin: 0;
  /* Checked fill >= 3:1 against the card (WCAG 1.4.11). */
  accent-color: var(--color-focus);
  border: 1px solid var(--color-input-border);
  border-radius: var(--radius-sm);
  cursor: inherit;
}

.input-293505b:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.labelText-293505b {
  color: var(--color-text-main);
  font-size: var(--text-sm);
  line-height: 1.25rem;
}


/* Disclosure chevron: one rotation convention (see chevron_toggle.rs). */
.chevron-ae3fb66 {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  color: inherit;
  transform: rotate(0deg);
  transition: transform var(--duration-normal) var(--ease-standard);
}

.chevron-ae3fb66[data-size="sm"] {
  width: 1rem;
  height: 1rem;
}

.chevron-ae3fb66[data-size="xs"] {
  width: 0.75rem;
  height: 0.75rem;
}

.chevron-ae3fb66[data-tone="muted"] {
  color: var(--color-text-muted);
}

.chevron-ae3fb66[data-direction="down"][data-open="false"] {
  transform: rotate(-90deg);
}

.chevron-ae3fb66[data-direction="right"][data-open="true"] {
  transform: rotate(90deg);
}


/* FieldKind::ChoiceList — editable single-selection option list. */

.root-7442b35 {
  margin: 0;
  padding: 0;
  border: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.legend-7442b35 {
  padding: 0;
  margin: 0 0 var(--space-1);
  font-weight: var(--font-bold);
  font-size: var(--text-sm);
  color: var(--color-text-main);
}

.required-7442b35 {
  color: var(--color-danger);
}

.rows-7442b35 {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

/* input grows; toggle + remove keep intrinsic width */
.row-7442b35 {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.rowInput-7442b35 {
  flex: 1 1 auto;
  min-width: 0;
}

.addRow-7442b35 {
  display: flex;
  justify-content: flex-start;
}


/* Title-row action slot shared by CardView and PanelView headers. */
.titleActions-fe7971c {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: var(--layout-gap);
}


.collabWrap-ae14709 {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
}

/* Trigger: ButtonView (Tertiary, Small). */
.collabDot-ae14709 {
  flex-shrink: 0;
  width: 0.625rem;
  height: 0.625rem;
  border-radius: var(--radius-full);
  box-shadow: 0 0 0 1px var(--color-button-alt-border);
}

.collabDotConnected-ae14709 {
  background: var(--color-success);
}

.collabDotReconnecting-ae14709 {
  background: var(--color-warning-700);
}

.collabDotOffline-ae14709 {
  background: var(--color-error);
}

.collabPopoverSectionLabel-ae14709 {
  margin: 0 0 var(--space-1);
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-nav-icon);
}

.collabPopoverLocalComments-ae14709 {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.collabPopoverStatus-ae14709 {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  color: var(--color-text-main);
}

.collabPopoverTable-ae14709 {
  max-height: 14rem;
  overflow: auto;
}


/* Shared full-width title-row trigger for collapsible Card / Panel. */

.trigger-2d5f6fb {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--layout-gap);
  min-width: 0;
  min-height: 2.25rem;
  margin: 0;
  padding: var(--collapsible-chrome-inset, var(--panel-padding));
  border: none;
  border-radius: var(--radius-md);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
}

.trigger-2d5f6fb[data-expanded="true"] {
  padding-bottom: calc(
    var(--collapsible-chrome-inset, var(--panel-padding)) + var(--layout-gap)
  );
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.trigger-2d5f6fb:hover {
  background: var(--color-button-alt-hover);
}

.trigger-2d5f6fb:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: -2px;
}

.title-2d5f6fb {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-weight: var(--font-bold);
  color: var(--color-text-main);
}

.title-2d5f6fb[data-level="card"] {
  font-size: var(--text-lg);
}

.title-2d5f6fb[data-level="panel"] {
  font-size: var(--text-base);
}

/* Colour slot around the shared ChevronToggleView (rotation lives there). */
.chevron-2d5f6fb {
  flex: 0 0 auto;
  display: inline-flex;
  color: var(--color-text-muted);
}

.trigger-2d5f6fb:hover .chevron-2d5f6fb {
  color: var(--color-text-main);
}


/* Compact form controls for dense admin tables (shared by admin keys/credentials/attestation pages).
   Applied on top of form_field .controlBase: the doubled class outranks its padding and
   min-height so dense tables stay dense. */
.select-420b45a.select-420b45a,
.textInput-420b45a.textInput-420b45a,
.input-420b45a.input-420b45a {
  max-width: 100%;
  min-height: 0;
  padding: var(--space-1-5) var(--space-2);
  border: 1px solid var(--color-input-border);
  border-radius: var(--radius-sm);
  background: var(--color-card-bg);
  color: var(--color-text-main);
  font-size: var(--text-sm);
}


/* Fill-height flex host under MainArea `.contentSlot` so remounting children
   (CapabilityGate Loading ↔ Allowed, admin credentials page) keep a definite height. */
.contentHost-1c57e5a {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  width: 100%;
}


.dateOnly-309587e {
  display: inline-block;
  white-space: nowrap;
}

.stacked-309587e {
  display: inline-flex;
  flex-direction: column;
  gap: var(--space-0-5);
  line-height: 1.2;
}

.dateLine-309587e {
  white-space: nowrap;
}

.timeLine-309587e {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  white-space: nowrap;
}

.timeOnly-309587e {
  display: inline-block;
  white-space: nowrap;
}

.rangeInline-309587e {
  display: inline;
  white-space: normal;
}

.rangeStack-309587e {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  align-items: flex-start;
}


.wrap-c53862b {
  position: relative;
  width: 100%;
  min-width: 0;
}

.inputRow-c53862b {
  position: relative;
  display: flex;
  align-items: center;
}

.iconLeft-c53862b {
  position: absolute;
  left: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--color-text-muted);
  display: flex;
  align-items: center;
}

.textInput-c53862b {
  width: 100%;
  cursor: pointer;
}

/* Room for the calendar icon; more specific than the shared .controlBase padding. */
.inputRow-c53862b .textInput-c53862b {
  padding-left: 2.25rem;
}

.popover-c53862b {
  position: fixed;
  z-index: var(--z-dropdown-panel-fixed);
  min-width: 17rem;
  max-width: min(100vw - 1rem, 22rem);
  padding: var(--space-2);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-main);
  box-shadow: var(--shadow-popover);
  box-sizing: border-box;
  overflow: auto;
}

.popoverContained-c53862b {
  position: absolute;
}

.popover-c53862b[data-anchor-visible="false"] {
  visibility: hidden;
  pointer-events: none;
}

.monthBar-c53862b {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-1-5);
}

.monthTitle-c53862b {
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
}

.navBtn-c53862b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-1) var(--space-1-5);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-main);
  color: var(--color-text-main);
  cursor: pointer;
}

.navBtn-c53862b:hover {
  background: var(--color-bg-muted);
}

.weekdays-c53862b {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: var(--space-0-5);
  margin-bottom: var(--space-0-5);
}

.weekday-c53862b {
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
  text-align: center;
  color: var(--color-text-muted);
}

.grid-c53862b {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: var(--space-0-5);
}

.cellBtn-c53862b {
  padding: var(--space-1-5) 0;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  background: transparent;
  font-size: var(--text-sm);
  color: var(--color-text-main);
  cursor: pointer;
}

.cellBtn-c53862b:hover {
  background: var(--color-bg-muted);
}

.cellMuted-c53862b {
  color: var(--color-text-muted);
  cursor: default;
}

.cellMuted-c53862b:hover {
  background: transparent;
}

.cellSelected-c53862b {
  background: var(--color-accent);
  color: var(--color-on-accent);
}

.cellSelected-c53862b:hover {
  background: var(--color-accent-strong);
  color: var(--color-on-accent);
}

.cellOutside-c53862b {
  opacity: 0.45;
}

.navBtn-c53862b:focus-visible,
.cellBtn-c53862b:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

/* Pointer targets >= 24px (WCAG 2.5.8). */
.navBtn-c53862b,
.cellBtn-c53862b {
  min-width: 1.5rem;
  min-height: 1.5rem;
}


.term-99a0828 {
  all: unset;
  display: inline;
  font: inherit;
  color: var(--color-link);
  text-decoration: underline dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  cursor: help;
  border-radius: var(--radius-sm);
}

.term-99a0828:hover,
.term-99a0828:focus-visible {
  text-decoration-style: solid;
}

.term-99a0828:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
}

.content-99a0828 {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.title-99a0828 {
  margin: 0;
  font-weight: var(--font-bold);
}

.text-99a0828 {
  margin: 0;
}

.points-99a0828 {
  margin: 0;
  padding-left: var(--space-5);
}


/* Definition list layout chrome; label/value typography lives in label_value.module.css */
.root-fd7020a {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.row-fd7020a {
  margin: 0;
}

.valueLink-fd7020a {
  color: var(--color-link);
  text-decoration: underline;
}

.actionsError-fd7020a {
  margin-top: var(--space-4);
}

/* DetailListRow::changed: the overriding value, then the value it replaced, muted. */
.changed-fd7020a {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
}

.changedOriginal-fd7020a {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}


.button-cc709d5 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  vertical-align: middle;
}

.button-cc709d5:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.starBookmarked-cc709d5 {
  color: var(--color-bookmark-active);
}

.starInactive-cc709d5 {
  color: var(--color-text-muted);
  opacity: 0.55;
}


.embedHost-c4df3b1 {
    flex: 1 1 0;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    position: relative;
}

/* Centered, non-blocking stale-revision banner over the PDF embed. */
.stateWarning-c4df3b1 {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 1;
    padding: var(--space-4);
    box-sizing: border-box;
    text-align: center;
    font-size: var(--text-xl);
    font-weight: var(--font-bold);
    letter-spacing: 0.02em;
    color: var(--color-warning-700);
    text-shadow:
        0 0 0.5rem color-mix(in srgb, var(--color-card-bg) 90%, transparent),
        0 1px 2px color-mix(in srgb, var(--color-card-bg) 80%, transparent);
}

.caption-c4df3b1 {
    margin: 0;
    line-height: 1.5;
    flex: 0 0 auto;
}

.pdfWrap-c4df3b1 {
    width: 100%;
    min-height: 72vh;
}

.pdfEmbedRootFill-c4df3b1 {
    flex: 1 1 0;
    min-height: 0;
    min-width: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.pdfWrapFill-c4df3b1 {
    flex: 1 1 0;
    /* Floor so a broken ancestor flex chain degrades to a usable viewer, not the
       browser's intrinsic ~150px iframe height. */
    min-height: 12rem;
    min-width: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.pdfFrame-c4df3b1 {
    display: block;
    width: 100%;
    min-height: 72vh;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.pdfFrameFill-c4df3b1 {
    display: block;
    flex: 1 1 0;
    min-height: 12rem;
    width: 100%;
    height: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-sizing: border-box;
}

.skeletonHost-c4df3b1 {
    position: relative;
    width: 100%;
    min-height: 12rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.skeletonHostFill-c4df3b1 {
    flex: 1 1 0;
    min-height: 12rem;
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* iOS: preview thumbnail with Open PDF CTA overlaid (native viewer via target=_blank). */
.iosFallback-c4df3b1 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    width: 100%;
    padding: var(--space-4);
    box-sizing: border-box;
}

.iosPreviewWrap-c4df3b1 {
    position: relative;
    display: block;
    width: fit-content;
    max-width: 100%;
}

.iosHint-c4df3b1 {
    margin: 0;
    max-width: 28rem;
    text-align: center;
    color: var(--color-text-muted);
    font-size: var(--text-base);
    line-height: 1.45;
}

.iosOpenLink-c4df3b1 {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-2) var(--space-5);
    border-radius: var(--radius-md);
    background: var(--color-cta);
    color: var(--color-on-cta);
    text-decoration: none;
    font-weight: var(--font-bold);
    font-size: var(--text-base);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    white-space: nowrap;
}

.iosOpenLink-c4df3b1:hover {
    background: var(--color-cta-hover);
}

.iosOpenLink-c4df3b1:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
}


/* Placeholder while the document PDF preview PNG loads — card shell + shimmer. */

.root-9eac8f1 {
  position: relative;
  width: 12.5rem;
  max-width: 100%;
  min-height: 11rem;
  box-sizing: border-box;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-card-border);
  box-shadow: var(--color-card-shadow);
  background: var(--color-card-bg);
  overflow: hidden;
  animation: skeletonRootPulse 2.2s ease-in-out infinite;
}

/* Fills a `position: relative` parent (e.g. preview link) while the image loads underneath. */
.rootOverlay-9eac8f1 {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  max-width: none;
  min-height: 0;
  height: 100%;
}

.shimmer-9eac8f1 {
  position: absolute;
  inset: 0.35rem;
  border-radius: var(--radius-md);
  background: linear-gradient(
    90deg,
    var(--color-card-bg) 0%,
    var(--color-button-alt-hover) 50%,
    var(--color-card-bg) 100%
  );
  background-size: 200% 100%;
  animation: skeletonShimmer 1.4s ease-in-out infinite;
}

@keyframes skeletonShimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}

@keyframes skeletonRootPulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.97;
  }
}


/* Fixed-size bordered document preview frame (A4 portrait aspect). */

.root-9a513fd {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: var(--document-preview-width, 12.5rem);
  max-width: 100%;
  aspect-ratio: 210 / 297;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  box-shadow: var(--color-card-shadow);
  background: var(--color-card-bg);
  overflow: hidden;
}

.rootSm-9a513fd {
  --document-preview-width: 10rem;
}

.rootMd-9a513fd {
  --document-preview-width: 12.5rem;
}

.rootLg-9a513fd {
  --document-preview-width: 18rem;
}


.link-9a513fd {
  display: block;
  width: 100%;
  height: 100%;
  line-height: 0;
  color: inherit;
  text-decoration: none;
}

.link-9a513fd:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.inner-9a513fd {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
}

.spinnerHost-9a513fd {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  background: var(--color-card-bg);
}

.img-9a513fd {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: top center;
  background: var(--color-surface-muted);
  transition: opacity var(--duration-normal) ease;
}

.imgLoading-9a513fd {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}

.imgLoaded-9a513fd {
  position: static;
  opacity: 1;
}

.errorHost-9a513fd {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  padding: var(--space-2);
  box-sizing: border-box;
  z-index: 1;
}

.errorHost-9a513fd > * {
  flex: 1;
  min-height: 0;
}


.root-4e88855 {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
    min-height: 0;
}

.header-4e88855 {
    margin-bottom: 0;
}

.toolbar-4e88855 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.toolbar_right-4e88855 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.editor_host-4e88855 {
    flex: 1;
    min-height: 24rem;
    min-width: 0;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-card-border);
    border-radius: 4px;
    overflow: hidden;
}

.editor_loading-4e88855 {
    margin: auto;
    padding: 1.5rem;
    color: var(--color-text-muted);
    text-align: center;
}

/* Custom elements default to display:inline; give Eigenpal a bounded flex height
   so its internal overflow:auto pages viewport becomes the scrollport. */
.editor_host-4e88855 navet-docx-editor {
    flex: 1;
    min-height: 0;
    min-width: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Hide eigenpal File menu Save; keep native Open. Scoped to the editor host. */
.editor_host-4e88855 navet-docx-editor [role='menubar'] > div:first-child > div[style*='position: fixed'] > div:nth-child(2) {
    display: none !important;
}

.inline_message-4e88855 {
    margin: 0;
}


/* Drawer surface — Flowbite-inspired but plain CSS (no JS, no utility framework).
   Sits above modals (z-index 9999) so the bottom drawer stays accessible while modals are open. */
.root-dfd2cb4 {
  position: fixed;
  z-index: var(--z-drawer);
  display: flex;
  flex-direction: column;
  background: var(--color-bg-main);
  color: var(--color-text-main);
  border: 1px solid var(--color-card-border);
  box-shadow: var(--shadow-drawer);
  transition: transform var(--duration-slow) ease-in-out;
  box-sizing: border-box;
  pointer-events: auto;
  visibility: hidden;
}

.rootContained-dfd2cb4 {
  /* Contained stages use absolute geometry relative to the stage box. */
  position: absolute;
}

.root-dfd2cb4[data-open="true"],
.rootOpen-dfd2cb4 {
  visibility: visible;
}

/* Bottom drawer: full width across the page, capped height. */
.placementBottom-dfd2cb4 {
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  max-height: 60vh;
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
  transform: translateY(100%);
}

.rootOpen-dfd2cb4.placementBottom-dfd2cb4 {
  transform: translateY(0);
}

.placementTop-dfd2cb4 {
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  max-height: 60vh;
  border-top: 0;
  border-left: 0;
  border-right: 0;
  transform: translateY(-100%);
}

.rootOpen-dfd2cb4.placementTop-dfd2cb4 {
  transform: translateY(0);
}

.placementLeft-dfd2cb4 {
  top: 0;
  bottom: 0;
  left: 0;
  width: min(420px, 90vw);
  border-top: 0;
  border-bottom: 0;
  border-left: 0;
  transform: translateX(-100%);
}

.rootOpen-dfd2cb4.placementLeft-dfd2cb4 {
  transform: translateX(0);
}

.placementRight-dfd2cb4 {
  top: 0;
  bottom: 0;
  right: 0;
  width: min(420px, 90vw);
  border-top: 0;
  border-bottom: 0;
  border-right: 0;
  transform: translateX(100%);
}

.rootOpen-dfd2cb4.placementRight-dfd2cb4 {
  transform: translateX(0);
}

.backdrop-dfd2cb4 {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer-backdrop);
  background: var(--color-overlay);
}

.backdropContained-dfd2cb4 {
  position: absolute;
}

.header-dfd2cb4 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-card-border);
  flex-shrink: 0;
}

.title-dfd2cb4 {
  margin: 0;
  font-size: var(--text-base);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
  line-height: 1.4;
}

.closeButton-dfd2cb4 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  background: transparent;
  color: var(--color-nav-icon);
  cursor: pointer;
  border-radius: var(--radius-md);
  padding: 0;
  font-size: var(--text-base);
}

.closeButton-dfd2cb4:hover {
  background: var(--color-dropdown-item-hover);
  color: var(--color-text-main);
}

.closeButton-dfd2cb4:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 1px;
}

.body-dfd2cb4 {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: var(--space-3) var(--space-4) var(--space-4) var(--space-4);
}


.errorSlot-5450517 {
  width: 100%;
}

/* Wrapper: relative for dropdown positioning */
.wrapper-5450517 {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* Trigger: form-control-like button with label and chevron.
   Grid (not flex): Firefox wraps <button> flex children in an anonymous box.
   `width: auto; min-width: 100%` (not `width: 100%`) keeps the intrinsic
   label size so table `max-content` columns do not collapse to ~2 glyphs
   (https://bugzilla.mozilla.org/show_bug.cgi?id=1060131). */
.trigger-5450517 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: var(--space-2);
  cursor: pointer;
  appearance: none;
  text-align: left;
  width: auto;
  min-width: 100%;
  max-width: 100%;
}

.trigger-5450517::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.trigger-5450517:hover {
  background: var(--color-dropdown-item-hover);
}

.trigger-5450517:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.triggerDisabled-5450517 {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}

.triggerLabel-5450517 {
  min-width: 0;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Dropdown panel */
.panel-5450517 {
  position: absolute;
  z-index: var(--z-dropdown-panel);
  left: 0;
  right: 0;
  top: 100%;
  margin-top: var(--space-1);
  min-width: 100%;
  padding: var(--space-1) 0;
  background: var(--color-dropdown-bg);
  border: 1px solid var(--color-dropdown-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-dropdown);
  max-height: 16rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.panel-5450517[data-open="false"] {
  display: none;
}

.panelFixed-5450517[data-anchor-visible="false"] {
  visibility: hidden;
  pointer-events: none;
}

/* Viewport-anchored panel (escapes overflow: auto scroll wrappers, e.g. table cells). */
.panelFixed-5450517 {
  position: fixed;
  z-index: var(--z-dropdown-panel-fixed);
  left: auto;
  right: auto;
  top: auto;
  margin-top: 0;
  min-width: unset;
}

/* Contained overlay stage: absolute within the stage box. */
.panelContained-5450517 {
  position: absolute;
}

.searchWrap-5450517 {
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--color-dropdown-border);
}

.searchInput-5450517 {
  width: 100%;
  padding: var(--space-1-5) var(--space-2);
  font-size: var(--text-sm);
  border: 1px solid var(--color-dropdown-border);
  border-radius: var(--radius-sm);
  background: var(--color-bg-main);
  color: var(--color-text-main);
  box-sizing: border-box;
}

.searchInput-5450517::placeholder {
  color: var(--color-text-muted);
}

.clearAll-5450517 {
  display: block;
  width: 100%;
  padding: var(--space-1-5) var(--space-4);
  font-size: var(--text-sm);
  text-align: left;
  color: var(--color-text-main);
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--color-dropdown-border);
  cursor: pointer;
  box-sizing: border-box;
}

.clearAll-5450517:hover {
  background: var(--color-dropdown-item-hover);
}

.clearAll-5450517:focus-visible,
.footerAction-5450517:focus-visible {
  box-shadow: inset 0 0 0 2px var(--color-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.menu-5450517 {
  outline: none;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  max-height: min(40vh, 16rem);
}

/* Fixed panel's inline max-height owns the budget; let the menu fill it. */
.panelFixed-5450517 .menu-5450517 {
  max-height: none;
}

/* Fixed action below the scrollable option list */
.footerAction-5450517 {
  flex-shrink: 0;
  display: block;
  width: 100%;
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  text-align: left;
  color: var(--color-text-main);
  background: var(--color-dropdown-bg);
  border: none;
  border-top: 1px solid var(--color-dropdown-border);
  cursor: pointer;
  box-sizing: border-box;
}

.footerAction-5450517:hover {
  background: var(--color-dropdown-item-hover);
}

.footerActionDanger-5450517 {
  color: var(--color-error);
}

.menuItem-5450517 {
  display: block;
  width: 100%;
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
  text-align: left;
  color: var(--color-text-main);
  background: transparent;
  border: none;
  cursor: pointer;
  box-sizing: border-box;
}

.menuItem-5450517:hover {
  background: var(--color-dropdown-item-hover);
}

.menuItemActive-5450517 {
  font-weight: var(--font-bold);
  background: var(--color-dropdown-item-active-bg);
  box-shadow: inset 3px 0 0 var(--color-secondary-fg);
}

.menuItemFocused-5450517,
.menuItem-5450517:focus-visible {
  background: var(--color-dropdown-item-hover);
  box-shadow: inset 0 0 0 2px var(--color-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.menuItemActive-5450517.menuItemFocused-5450517 {
  box-shadow: inset 3px 0 0 var(--color-secondary-fg), inset 0 0 0 2px var(--color-focus);
}

.menuItemContent-5450517 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.checkIcon-5450517 {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
}


/* Shared file drop target. Drag chrome is suppressed on coarse/narrow viewports. */

.rootCard-2fde80b {
  position: relative;
  box-sizing: border-box;
  flex: 1 1 auto;
  min-height: 16rem;
  border: 2px dashed var(--color-card-border);
  border-radius: var(--radius-md);
  padding: var(--space-8) var(--space-5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  text-align: center;
  cursor: pointer;
  background: var(--color-bg-main);
  transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, color var(--duration-fast) ease,
    box-shadow var(--duration-fast) ease;
}

.rootCardActive-2fde80b {
  border-color: var(--tone-info-border, var(--color-accent));
  border-style: solid;
  background: var(--tone-info-bg, var(--color-nav-icon-hover));
  color: var(--tone-info-fg, var(--color-text-main));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 25%, transparent);
}

.rootCard-2fde80b:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.rootCard-2fde80b[data-drop-disabled="true"] {
  cursor: default;
}

.rootCircle-2fde80b {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.circleFrame-2fde80b {
  width: 12rem;
  height: 12rem;
  max-width: 100%;
  margin-inline: auto;
  border-radius: 50%;
  border: 1px dashed var(--color-dropdown-border);
  overflow: hidden;
  background: var(--color-surface-muted, transparent);
}

.rootCircleActive-2fde80b .circleFrame-2fde80b {
  border-color: var(--color-cta);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-cta) 35%, transparent);
}

.circleMedia-2fde80b {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--color-accent-text);
}

.circleMedia-2fde80b > * {
  width: 100%;
  height: 100%;
}

.hintOverlay-2fde80b {
  position: absolute;
  left: 50%;
  bottom: 6%;
  z-index: 2;
  transform: translateX(-50%);
  width: min(88%, 16rem);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  text-align: center;
  font-size: var(--text-sm);
  line-height: 1.4;
  color: var(--color-accent-text);
  background: var(--color-hint-overlay-bg);
  pointer-events: none;
}

.hintInline-2fde80b {
  font-size: var(--text-base);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
  margin: 0;
  max-width: 22rem;
}

.rootCardActive-2fde80b .hintInline-2fde80b {
  color: inherit;
}

@media (max-width: 40rem), (pointer: coarse) {
  .rootCard-2fde80b {
    border-style: solid;
    cursor: default;
  }

  .hintOverlay-2fde80b {
    display: none;
  }
}


.root-c60a4f9 {
  min-width: 0;
}

/* Host when Table owns the scrollport (infinite scroll). Keeps the list test id. */
.pagedScrollHost-c60a4f9 {
  min-width: 0;
}

/* Shared Table layout grows the first column (identity in lists). Pickers put a
   checkbox there, so hug that control and let the identity column take leftover
   width — including document numbers in a two-column modal. */
[data-component="entity-picker"] table th:first-child:not(:last-child),
[data-component="entity-picker"] table td:first-child:not(:last-child) {
  width: 2.75rem;
  min-width: 2.75rem;
  max-width: 2.75rem;
  padding-left: var(--space-3);
  padding-right: var(--space-2);
  text-align: center;
  white-space: nowrap;
}

[data-component="entity-picker"] table th:nth-child(2):not(:first-child),
[data-component="entity-picker"] table td:nth-child(2):not(:first-child) {
  width: auto;
  white-space: normal;
}

.checkboxCell-c60a4f9 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  margin: 0 auto;
}

/* Pickers with slide-down drawers: the first column holds chevron + checkbox. */
[data-component="entity-picker"][data-expandable="true"] table th:first-child:not(:last-child),
[data-component="entity-picker"][data-expandable="true"] table td:first-child:not(:last-child) {
  width: 4.5rem;
  min-width: 4.5rem;
  max-width: 4.5rem;
}

.drawerList-c60a4f9 {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  padding: var(--space-1) var(--space-3) var(--space-2) 4.5rem;
}

.drawerRow-c60a4f9 {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm);
}

.drawerRow-c60a4f9[data-selected="true"] {
  background: var(--color-bg-muted);
}

.drawerCell-c60a4f9 {
  min-width: 0;
}

.drawerMessage-c60a4f9 {
  padding: var(--space-2) var(--space-3) var(--space-2) 4.5rem;
  color: var(--color-text-muted);
  font-style: italic;
}


.firstCellInner-c7e212a {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.firstCellContent-c7e212a {
  flex: 1 1 auto;
  min-width: 0;
}

.toggle-c7e212a {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  color: var(--color-text-muted);
  border-radius: var(--radius-sm);
  cursor: pointer;
}

.toggle-c7e212a:hover {
  background: var(--color-bg-muted);
  color: var(--color-text);
}

.toggle-c7e212a:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.drawer-c7e212a {
  background: var(--color-bg-card);
}

.drawerCell-c7e212a {
  padding: 0;
  border-top: none;
}

.drawerInner-c7e212a {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height var(--duration-normal) ease, opacity var(--duration-normal) ease;
}

.drawerInner-c7e212a[data-open="true"] {
  max-height: 60rem;
  opacity: 1;
}

.drawerBody-c7e212a {
  padding: var(--space-2) var(--space-3) var(--space-3);
  border-top: 1px solid var(--color-card-border);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}


.root-6d6f312 {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-full);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  background: var(--color-card-bg);
  color: var(--color-text-main);
  box-shadow: var(--shadow-fab);
  transition: background-color var(--duration-fast) ease, transform var(--duration-fast) ease;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  touch-action: manipulation;
}

.fixedRoot-6d6f312 {
  position: fixed;
}

.contained-6d6f312 {
  position: absolute;
}

.root-6d6f312:hover {
  background: var(--color-dropdown-item-hover);
}

.root-6d6f312:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.cornerBottomLeft-6d6f312 {
  left: 1.25rem;
  bottom: 1.25rem;
  z-index: var(--z-fab);
}

.cornerBottomRight-6d6f312 {
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: var(--z-fab-indicator);
}

.active-6d6f312 {
  border-color: var(--color-accent);
  color: var(--color-link);
}

.passive-6d6f312 {
  cursor: default;
}

.passive-6d6f312:hover {
  background: var(--color-card-bg);
}

.icon-6d6f312 {
  width: 1.8rem;
  height: 1.8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.icon-6d6f312 > * {
  width: 90%;
  height: 90%;
  display: block;
}

.badge-6d6f312 {
  position: absolute;
  top: -0.25rem;
  right: -0.25rem;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.3rem;
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
  background: var(--color-button-disabled-bg);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-sizing: border-box;
}

.badgeActive-6d6f312 {
  background: var(--color-cta);
  color: var(--color-on-cta);
  border-color: var(--color-cta);
}


.list-919c2c1 {
  list-style: disc;
  margin: var(--space-1) 0 0 1.1rem;
  padding: 0;
  text-align: left;
}

.item-919c2c1 {
  margin: var(--space-1) 0;
  font-size: var(--text-sm);
  word-break: break-word;
}

.empty-919c2c1 {
  margin: 0;
}


.field-418ed00 {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 0.5rem);
}

.errorMessage-418ed00 {
  color: var(--color-danger);
  font-size: var(--text-sm);
}

/* Field::visible wrapper: layout-transparent (the field's own root participates directly in the
   parent's flex/grid, e.g. ResponsiveFormRow's two-column grid) while shown, fully removed from
   layout and the accessibility tree while hidden. */
.visibilityWrapper-418ed00 {
  display: contents;
}

.hidden-418ed00 {
  display: none;
}


/* Label, control and error stacked in one shrinkable column. */
.fieldRow-f4fd342 {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  width: 100%;
  min-width: 0;
}


/* Visually hidden but still focusable / send_keys-able for E2E */
.hiddenFile-74752b3 {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}


/* Shared form field label styles — used by input, textarea, and dropdown. */
.label-cc142a4 {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  color: var(--color-text-main);
  margin-bottom: var(--space-1);
}

.labelNoMargin-cc142a4 {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  color: var(--color-text-main);
  margin-bottom: 0;
}

.labelRequired-cc142a4 {
  color: var(--color-error);
}

/* Shared look of every single- and multi-line form control (input, select, textarea, dropdown
   trigger, date input, time-range trigger, table search). Applied as a second class; the
   control's own module keeps only layout specific to it. */
.controlBase-cc142a4 {
  box-sizing: border-box;
  padding: var(--space-2) var(--space-3);
  font-family: inherit;
  font-size: var(--text-base);
  line-height: var(--leading-tight);
  color: var(--color-text-main);
  background: var(--color-input-bg);
  border: 1px solid var(--color-input-border);
  border-radius: var(--radius-md);
}

.controlBase-cc142a4:not(textarea) {
  min-height: 2.5rem;
}

/* ControlSize (`data-size`): `md` is the base rule above; only sm / lg override it. */
.controlBase-cc142a4[data-size="sm"] {
  padding: var(--space-1-5) var(--space-2);
  font-size: var(--text-sm);
}

.controlBase-cc142a4[data-size="sm"]:not(textarea) {
  min-height: 2rem;
}

.controlBase-cc142a4[data-size="lg"] {
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-md);
}

.controlBase-cc142a4[data-size="lg"]:not(textarea) {
  min-height: 3rem;
}

.controlBase-cc142a4:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.controlBase-cc142a4[aria-invalid="true"] {
  border-color: var(--color-danger);
}

.controlBase-cc142a4:disabled,
.controlBase-cc142a4[aria-disabled="true"] {
  background: var(--color-surface-raised);
  color: var(--color-text-muted);
  cursor: not-allowed;
}


/* Responsive form row: side-by-side when wide, stacked when narrow.
   Breakpoint at 36rem so type+subtype reflow to one row when there is room.
   Full width so in narrow (stacked) view inputs span the card. */
.row-26ef3c0 {
  display: flex;
  gap: var(--space-4);
  align-items: flex-end;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
}

.row-26ef3c0 > * {
  flex: 1 1 12rem;
  min-width: 0;
}

@media (max-width: 36rem) {
  .row-26ef3c0 {
    flex-direction: column;
    align-items: stretch;
  }

  .row-26ef3c0 > * {
    flex: 1 1 100%;
    width: 100%;
  }
}


.root-ce3ed00 {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: 100%;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  background: var(--color-card-bg);
  overflow: hidden;
}

.root-ce3ed00[data-size="preview"] {
  max-height: 16rem;
  height: 16rem;
}

.root-ce3ed00[data-size="fill"] {
  flex: 1 1 auto;
  height: 100%;
  min-height: 16rem;
}

.toolbar-ce3ed00 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  border-bottom: 1px solid var(--color-card-border);
  flex-shrink: 0;
}

.canvasHost-ce3ed00 {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  touch-action: none;
  cursor: grab;
  background: var(--color-bg-main);
}

.canvasHost-ce3ed00[data-panning="true"] {
  cursor: grabbing;
}

.svg-ce3ed00 {
  display: block;
  width: 100%;
  height: 100%;
  user-select: none;
  color: var(--color-text);
}

.edge-ce3ed00 {
  fill: none;
  stroke: var(--color-text-muted);
  stroke-width: 1.5;
  marker-end: url(#graph-view-arrow);
}

.edge-ce3ed00[data-kind="template"],
.edge-ce3ed00[data-kind="template_for"] {
  stroke: var(--color-accent);
  stroke-dasharray: 6 4;
  marker-end: url(#graph-view-arrow-template);
}

.edge-ce3ed00[data-kind="referenced_by"],
.edge-ce3ed00[data-kind="references"] {
  stroke: var(--color-link);
}

.edge-ce3ed00[data-kind="reports_to"] {
  stroke: var(--color-success);
}

.edge-ce3ed00[data-kind="subsidiary"] {
  stroke: var(--color-accent);
}

.node-ce3ed00 {
  cursor: pointer;
}

/*
 * Node chrome lives in HTML (foreignObject), not SVG rect fill/stroke.
 * SVG presentation colors often ignore theme custom properties; HTML does not.
 */
.nodeCard-ce3ed00 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.15rem;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: 0.25rem 0.4rem;
  min-width: 0;
  overflow: hidden;
  border-radius: 6px;
  border: 1.5px solid var(--color-card-border);
  background: var(--color-card-bg);
  color: var(--color-text);
  font-family: inherit;
  color-scheme: light dark;
}

.node-ce3ed00[data-selected="true"] .nodeCard-ce3ed00 {
  border-color: var(--color-accent);
  border-width: 2.5px;
  padding: 0.2rem 0.35rem;
}

.node-ce3ed00[data-viewable="false"] .nodeCard-ce3ed00 {
  background: var(--color-surface-muted);
  border-style: dashed;
}

.node-ce3ed00[data-focus="true"] .nodeCard-ce3ed00 {
  border-color: var(--color-warning-700);
  border-width: 2.5px;
  padding: 0.2rem 0.35rem;
}

.nodeTitle-ce3ed00 {
  display: block;
  min-width: 0;
  font-size: 11px;
  font-weight: var(--font-regular);
  font-style: italic;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--color-text);
}

.node-ce3ed00[data-kind="marker"] .nodeCard-ce3ed00 {
  border-style: dashed;
  background: transparent;
  color: var(--color-text-muted);
}

.node-ce3ed00[data-changed="true"] .nodeCard-ce3ed00 {
  box-shadow: inset 3px 0 0 var(--color-warning-700);
}

.nodeMeta-ce3ed00 {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
}

.nodeStatus-ce3ed00 {
  flex: 0 0 auto;
  font-size: 9px;
  line-height: 1;
}

.nodeNumber-ce3ed00 {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 10px;
  font-weight: var(--font-regular);
  font-style: normal;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--color-text-muted);
}

.expandHit-ce3ed00 {
  cursor: pointer;
}

.expandHit-ce3ed00 circle {
  fill: var(--color-accent);
  stroke: var(--color-card-bg);
  stroke-width: 1.5;
}

.expandHit-ce3ed00 text {
  fill: var(--color-on-accent);
  font-size: 12px;
  font-weight: var(--font-bold);
  text-anchor: middle;
  dominant-baseline: central;
  pointer-events: none;
}

/* Enabled with components feature `graph-view-layout-animate`. */
.nodeAnimate-ce3ed00 {
  transition: transform 220ms ease;
}

.inaccessibleBadge-ce3ed00 {
  pointer-events: none;
}

.inaccessibleBadgeBg-ce3ed00 {
  fill: var(--color-surface-muted);
  stroke: var(--color-card-border);
  stroke-width: 1;
}

.inaccessibleBadgeIcon-ce3ed00 {
  fill: var(--color-text-muted);
  stroke: none;
}

.emptyHost-ce3ed00 {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  flex: 1 1 auto;
}


.salutation-154a51e {
  margin: 0 0 var(--space-2);
  white-space: pre-wrap;
  line-height: 1.45;
}

.paragraph-154a51e {
  margin: 0 0 var(--space-2);
  line-height: 1.5;
  white-space: pre-wrap;
}

.links-154a51e {
  margin: var(--space-1) 0 0 0;
}

.links-154a51e a {
  text-decoration: underline;
}


.items-5c5d393 {
  display: flex;
  gap: var(--space-3);
  min-width: 0;
}

.items-5c5d393[data-layout="column"] {
  flex-direction: column;
}

.items-5c5d393[data-layout="flex-wrap"] {
  flex-direction: row;
  flex-wrap: wrap;
}

.items-5c5d393[data-layout="two-column"] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.items-5c5d393[data-layout="responsive-grid"] {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3) var(--space-4);
  min-width: 0;
}

@media (min-width: 36rem) {
  .items-5c5d393[data-layout="responsive-grid"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 52rem) {
  .items-5c5d393[data-layout="responsive-grid"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.item-5c5d393 {
  min-width: 0;
}

.valueLink-5c5d393 {
  color: var(--color-link);
  text-decoration: underline;
}


.display-c459a43 {
  all: unset;
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  max-width: 100%;
  cursor: pointer;
  border-radius: var(--radius-sm);
}

.display-c459a43:hover .icon-c459a43,
.display-c459a43:focus-visible .icon-c459a43 {
  color: var(--color-accent);
}

.display-c459a43:focus-visible {
  outline: var(--focus-ring);
  outline-offset: 2px;
}

.displayText-c459a43 {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.icon-c459a43 {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.editRow-c459a43 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
}

.textInput-c459a43 {
  flex: 1 1 auto;
  min-width: 0;
}

.error-c459a43 {
  flex: 1 0 100%;
  margin: 0;
  color: var(--color-danger);
  font-size: var(--text-sm);
}


/* Form input; label styles in form_field.module.css */
.input-8ad99c2,
.select-8ad99c2 {
  width: 100%;
}

.select-8ad99c2 {
  display: block;
}

.input-8ad99c2::placeholder {
  color: var(--color-text-muted);
}

.errorMessage-8ad99c2 {
  font-size: var(--text-sm);
  color: var(--color-error);
  margin-top: var(--space-0-5);
}

.formGroup-8ad99c2 {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}


/* Shared label/value typography (DetailList, ItemDisplay, InfoItemsGrid). */

.label-fff1b89 {
  display: block;
  font-weight: var(--font-regular);
  font-size: var(--text-sm);
  font-style: italic;
  color: var(--color-text-muted);
  line-height: 1.3;
  min-width: 0;
}

.value-fff1b89 {
  display: block;
  color: var(--color-text-main);
  line-height: 1.45;
  min-width: 0;
  max-width: 100%;
}

.valueBreak-fff1b89 {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.valueNowrap-fff1b89 {
  white-space: nowrap;
}

.stack-fff1b89 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1-5);
  min-width: 0;
}


/* Wrapper: relative for layout; panel uses fixed positioning when open */
.wrapper-3a2c97f {
  position: relative;
  display: inline-block;
}

/* Trigger: nav_icon_button.module.css (shared with the theme toggle). */

/* Dropdown panel: fixed + AutoFlip via use_anchored_panel keeps it on-canvas */
.dropdown-3a2c97f {
  position: fixed;
  z-index: var(--z-dropdown-panel-fixed);
  min-width: 12rem;
  padding: var(--space-1) 0;
  background: var(--color-dropdown-bg);
  border: 1px solid var(--color-dropdown-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-dropdown);
  box-sizing: border-box;
  overflow: auto;
}

.dropdown-3a2c97f[data-open="false"] {
  display: none;
}

.dropdown-3a2c97f[data-anchor-visible="false"] {
  visibility: hidden;
  pointer-events: none;
}

.menu-3a2c97f {
  outline: none;
}

.menuItem-3a2c97f {
  display: block;
  width: 100%;
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
  text-align: left;
  color: var(--color-text-main);
  background: transparent;
  border: none;
  cursor: pointer;
  box-sizing: border-box;
}

.menuItem-3a2c97f:hover {
  background: var(--color-dropdown-item-hover);
}

.menuItemActive-3a2c97f {
  font-weight: var(--font-bold);
  background: var(--color-dropdown-item-active-bg);
  box-shadow: inset 3px 0 0 var(--color-secondary-fg);
}

.menuItem-3a2c97f:focus-visible {
  background: var(--color-dropdown-item-hover);
  box-shadow: inset 0 0 0 2px var(--color-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.menuItemContent-3a2c97f {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.checkIcon-3a2c97f {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
}


/* Layout root: fixed viewport height so the window never scrolls; only main/sidebar content scrolls */
.root-effbfed {
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
}

.topStrip-effbfed {
  flex-shrink: 0;
  width: 100%;
  box-sizing: border-box;
}

.navBar-effbfed {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  background: var(--color-bg-nav);
  color: var(--color-text-on-dark);
  position: relative;
  z-index: var(--z-nav);
  border-bottom: 1px solid var(--color-card-border);
  box-shadow: var(--color-card-shadow);
}

.mainWithSide-effbfed {
  display: flex;
  flex: 1;
  min-height: 0;
  position: relative;
}


.lifecycleList-f4e2cf0 {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1-5);
}

.lifecycleListItem-f4e2cf0 {
  display: flex;
  align-items: center;
  gap: 0;
}

.lifecycleListItem-f4e2cf0[data-active="true"] {
  font-weight: var(--font-bold);
}

.lifecycleIcon-f4e2cf0 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  margin-right: 0.5em;
  line-height: 1;
}

.lifecycleIcon-f4e2cf0 svg {
  width: 100%;
  height: 100%;
}

.lifecycleIconDone-f4e2cf0 {
  color: var(--color-success-text);
}

.lifecycleIconDone-f4e2cf0 svg,
.lifecycleIconDone-f4e2cf0 svg * {
  color: var(--color-success-text);
  stroke: var(--color-success);
}

.lifecycleIconTodo-f4e2cf0 {
  color: var(--color-text-muted);
}

.lifecycleIconTodo-f4e2cf0 svg,
.lifecycleIconTodo-f4e2cf0 svg * {
  color: var(--color-text-muted);
  stroke: var(--color-text-muted);
}

.lifecycleIconSuperseded-f4e2cf0 {
  color: var(--color-text-muted);
}

.lifecycleIconSuperseded-f4e2cf0 svg,
.lifecycleIconSuperseded-f4e2cf0 svg * {
  color: var(--color-text-muted);
  stroke: var(--color-text-muted);
}

.lifecycleIconObsolete-f4e2cf0 {
  color: var(--color-danger);
}

.lifecycleIconObsolete-f4e2cf0 svg,
.lifecycleIconObsolete-f4e2cf0 svg * {
  color: var(--color-danger);
  stroke: var(--color-danger);
}

.lifecycleStageLabel-f4e2cf0 {
  line-height: 1.25;
}

.lifecycleNextAction-f4e2cf0 {
  margin-top: var(--space-2);
}

.lifecycleApproverSection-f4e2cf0 {
  margin-top: var(--space-2);
}

.lifecycleApproverTitle-f4e2cf0 {
  margin: 0 0 var(--space-1) 0;
  font-weight: var(--font-bold);
}

.lifecycleApproverList-f4e2cf0 {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.lifecycleApproverRow-f4e2cf0 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}


/* Fixed to viewport; only the content wrapper scrolls when needed (e.g. long documents list). */
.area-8ab0ba0 {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: var(--page-padding);
  overflow: hidden;
  background: var(--color-bg-main);
}

/* Single scrollable slot: editor page fills it without scrolling; other pages scroll here */
.contentSlot-8ab0ba0 {
  flex: 1;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap);
  /* Allow single fill-height child (e.g. editor card) to take full height */
  align-items: stretch;
}

/* Stable flex host for once-built outlet/provider trees so reactive fragments
   (CapabilityGate, Outlet) remount inside a definite-height column. */
.contentHost-8ab0ba0 {
  flex: 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
}


/* Invisible overlay that closes a trigger menu on outside click. */
.overlay-c41b932 {
  position: fixed;
  inset: 0;
  z-index: var(--z-dropdown-overlay);
  background: transparent;
  display: none;
}

.overlayVisible-c41b932 {
  display: block;
}


/* Modal overlay and dialog – matches old Askama modal (backdrop-blur, card box). */
.root-a3611fd {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  isolation: isolate;
}

/* Contained stage: fill the stage box instead of the viewport. */
.rootContained-a3611fd {
  position: absolute;
}

.rootHidden-a3611fd {
  display: none;
}

.backdrop-a3611fd {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal-backdrop);
  background: var(--color-overlay);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.rootContained-a3611fd .backdrop-a3611fd {
  position: absolute;
}

/* Layout only; Card inside provides border, shadow, background, padding.
   Stable width so opening a dropdown does not cause reflow.
   Narrow viewports: modal uses most horizontal space. */
.dialogBox-a3611fd,
.dialogBoxWide-a3611fd,
.dialogBoxTall-a3611fd {
  position: relative;
  /* Same gutter as the page so phones do not lose a second inset around the card. */
  margin: 0 var(--page-padding);
  z-index: var(--z-modal);
  max-height: min(92dvh, 100%);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.dialogBox-a3611fd {
  width: min(36rem, 95vw);
}

.dialogBoxWide-a3611fd {
  width: min(56rem, 96vw);
}

.dialogBoxTall-a3611fd {
  width: min(56rem, 96vw);
  height: min(92dvh, 100%);
}

.message-a3611fd {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-6);
}

/* Wrapper for modal body content: gap between form fields, messages, etc.
   Overflow visible so dropdown panels (e.g. document type, sub-type) are not clipped.
   Full width so stacked inputs in narrow view span the card. */
.bodyContent-a3611fd {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  /* Inset so input/dropdown focus rings (2px) are not clipped by overflow-x. */
  padding: var(--space-0-5);
  overflow-y: auto;
  overflow-x: hidden;
  /* Keep footer reachable on small viewports (title + footer ~10rem). */
  max-height: min(60vh, calc(92dvh - 10rem));
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* Contained stage height is often well below 60vh; keep the body inside dialogBox
   so table rows are not clipped under the backdrop. */
.rootContained-a3611fd .bodyContent-a3611fd {
  max-height: min(42vh, 22rem, calc(92dvh - 12rem));
}

/* Body owns the slack instead of capping at 60vh so an embedded PDF can fill it. */
.bodyContentTall-a3611fd {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
}

/* ModalBody wrappers (formStack) must absorb remaining height so fill-height
   children (e.g. signing PDF preview) are not stuck at their min-height floor. */
.bodyContentTall-a3611fd > [data-modal-body] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.bodyContent-a3611fd > * {
  min-width: 0;
}

.actionError-a3611fd {
  margin-top: var(--space-2);
  margin-bottom: var(--space-3);
}

/* Above dropdown overlays (z-index 40) so confirm/cancel buttons receive clicks when a dropdown was just closed */
.footer-a3611fd {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--space-3);
  position: relative;
  z-index: var(--z-modal-footer);
  flex-shrink: 0;
}


/* Typed modal body layouts (form stack, confirm prose). */

.confirm-85d81ed {
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap, 0.75rem);
  min-width: 0;
}

.confirmText-85d81ed {
  margin: 0;
  color: var(--color-text-main);
  line-height: 1.45;
}

.formStack-85d81ed {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  min-width: 0;
}

.detailsStack-85d81ed {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

/* Headed guidance notice inside a form (ModalFormNotice::title / ::points). */
.noticeTitle-85d81ed {
  margin: 0 0 var(--space-1);
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
}

.noticePoints-85d81ed {
  margin: var(--space-2) 0 0;
  padding-left: 1.1rem;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  color: var(--color-text-main);
  line-height: 1.45;
}

/* ModalFormRow::HintedText: lead-in line with inline DefinitionHintView terms. */
.hintedText-85d81ed {
  margin: 0;
  color: var(--color-text-main);
  line-height: 1.45;
}

/* ModalBodyPreview: the dialog's card frame without the overlay (documentation surfaces). */
.preview-85d81ed {
  width: min(36rem, 100%);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  background: var(--color-card-bg);
  color: var(--color-text-main);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  box-shadow: var(--color-card-shadow);
  padding: var(--card-padding);
  box-sizing: border-box;
}

.previewTitle-85d81ed {
  margin: 0;
  font-size: var(--text-lg);
  font-weight: var(--font-bold);
}


/* ModalBody::Steps: stage strip above the current stage body (or the summary). */

.root-940a107 {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
}

/* Stage strip: numbered links, not tabs. Scrolls horizontally on its own when narrow, and
   `modal_steps.rs` scrolls it to the current stage. `overflow-x: auto` makes the block axis
   compute to `auto` as well, so nothing inside may stick out past the padding box or the strip
   grows a second, vertical scrollbar of its own. */
.nav-940a107 {
  min-width: 0;
  overflow-x: auto;
  scroll-behavior: smooth;
  border-bottom: 1px solid var(--color-border-muted);
}

.list-940a107 {
  display: flex;
  gap: var(--space-1);
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}

.item-940a107 {
  display: flex;
  flex: 0 0 auto;
}

.link-940a107 {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border: 0;
  /* No negative margin to overlap the strip's border: that 1px is vertical overflow, and the
     strip is a scroll container on both axes (see .nav). */
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--color-text-muted);
  font: inherit;
  font-size: var(--text-sm);
  white-space: nowrap;
  cursor: pointer;
}

.link-940a107:hover {
  color: var(--color-text-main);
}

.link-940a107:focus-visible {
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.number-940a107 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.5rem;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
}

.label-940a107 {
  font-weight: var(--font-regular);
}

.item-940a107[data-stage-state="current"] .link-940a107 {
  color: var(--color-text-main);
  border-bottom-color: var(--color-accent);
}

.item-940a107[data-stage-state="current"] .number-940a107 {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-on-accent);
}

.item-940a107[data-stage-state="complete"] .number-940a107 {
  border-color: var(--tone-success-border);
  background: var(--tone-success-bg);
  color: var(--tone-success-fg);
}

.item-940a107[data-stage-state="incomplete"] .number-940a107 {
  border-color: var(--tone-warning-border);
  background: var(--tone-warning-bg);
  color: var(--tone-warning-fg);
}

.body-940a107 {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
}

/* Drill-down inside a stage (e.g. one question of a list). */
.detail-940a107 {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
}

.detailHeading-940a107,
.sectionTitle-940a107 {
  margin: 0;
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
}

.summary-940a107 {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
}

.intro-940a107 {
  margin: 0;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.section-940a107 {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-muted);
  min-width: 0;
}

.sectionHead-940a107 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}


.root-8b09da0 {
  max-height: min(50vh, 28rem);
  overflow: auto;
  min-width: 0;
}

/* Contained overlay stages are often shorter than 50vh (chrome + banners). A
   viewport-vh cap can overflow dialogBox (overflow:hidden) so picker rows are
   clipped and WebDriver hits the modal backdrop instead of the checkbox. */
[data-stage-space="contained"] .root-8b09da0 {
  max-height: min(32vh, 16rem);
}

.rootTall-8b09da0 {
  max-height: min(60vh, 26rem);
}

[data-stage-space="contained"] .rootTall-8b09da0 {
  max-height: min(40vh, 20rem);
}

.marginBottom-8b09da0 {
  margin-bottom: var(--space-4);
}

/* Sticky header when the scrollport owns the table (embed_in_outer_scroll). */
.rootSticky-8b09da0 table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  color: var(--color-text-main);
  background: var(--color-button-alt-bg);
  background-clip: padding-box;
  box-shadow: 0 1px 0 var(--color-card-border);
}


/* Mutation wrapper chrome only — button dimensions/colors come from ButtonView. */

.successIcon-b1d2200 {
  display: inline-flex;
  color: var(--color-success-text);
  align-items: center;
}

.successIcon-b1d2200 svg {
  width: 1.15rem;
  height: 1.15rem;
}

.controlWrap-b1d2200 {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
}

/* Body: colors & type only (position comes from visible/contained classes or inline fixed layout). */
.hintPopover-b1d2200 {
  box-sizing: border-box;
  margin: 0;
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  line-height: 1.4;
  color: var(--color-text-main);
  background: var(--color-card-bg);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  box-shadow: var(--color-card-shadow);
  text-align: start;
  cursor: default;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
  max-height: min(40vh, 16rem);
  overflow-y: auto;
}

.hintPopoverContained-b1d2200 {
  position: absolute;
  top: 100%;
  right: 0;
  left: auto;
  margin-top: var(--space-1-5);
  z-index: 100;
  min-width: min(100%, 12rem);
  width: max-content;
  max-width: min(22rem, 100%);
}

.hintPopoverHidden-b1d2200 {
  display: none;
}


.bar-46caaea {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  box-sizing: border-box;
  padding: var(--space-1-5) var(--space-3);
  min-height: 2.5rem;
  background: var(--color-bg-nav);
  color: var(--color-text-on-dark);
  flex-shrink: 0;
}

.left-46caaea {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.toggleWrapper-46caaea {
  display: flex;
  align-items: center;
}

@media (min-width: 48rem) {
  .toggleWrapper-46caaea {
    display: none;
  }
}

.branding-46caaea {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.right-46caaea {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-left: auto;
}

.notificationLink-46caaea {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 2rem;
  min-height: 2rem;
  padding: var(--space-1);
  border-radius: var(--radius-sm);
  color: inherit;
  text-decoration: none;
}

.notificationLink-46caaea:hover {
  background: var(--color-interactive-hover-on-dark);
}

.notificationLink-46caaea:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.notificationBadge-46caaea {
  position: absolute;
  top: 0.1rem;
  right: 0.1rem;
  min-width: 1rem;
  height: 1rem;
  padding: 0 var(--space-1);
  box-sizing: border-box;
  font-size: var(--text-xs);
  line-height: 1rem;
  text-align: center;
  border-radius: var(--radius-full);
  background: var(--color-danger-bg);
  color: var(--color-text-on-dark);
}

/* Square nav-bar icon button: transparent, nav icon colour, hover wash. */
.button-fb8afbb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: var(--space-2);
  color: var(--color-nav-icon);
  background: transparent;
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
}

.button-fb8afbb:hover {
  background: var(--color-nav-icon-hover);
}

.button-fb8afbb:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.icon-fb8afbb {
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 40rem) {
  .button-fb8afbb {
    width: 3rem;
    height: 3rem;
  }
}


/* Overlay stage root: contained is a relative clip box; viewport uses a sentinel only. */

.root-78b6ff5 {
  position: relative;
  isolation: isolate;
}

.rootContained-78b6ff5 {
  position: relative;
  width: 100%;
  min-height: 0;
  overflow: hidden;
}

/* Zero-size hook for viewport stages — never wraps app layout (flex/height safe). */
.viewportSentinel-78b6ff5 {
  position: fixed;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
  border: 0;
  padding: 0;
  margin: 0;
}

.mount-78b6ff5 {
  pointer-events: none;
}

.mountContained-78b6ff5 {
  position: absolute;
  inset: 0;
  z-index: var(--z-portal);
  pointer-events: none;
}

/* Children of the mount regain pointer events (portaled overlays). */
.mount-78b6ff5 > * {
  pointer-events: auto;
}


/* PageArchetype owns the page-root flex box so MainArea's height chain is preserved.
   Modes mirror the crate-private PageRootMode recipes. */

.root-f9ad1cd {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

/* List-detail must take the MainArea height. Prefer flex sizing over `height: 100%`:
   percentage height can resolve to 0 when the flex parent's height is still indefinite
   during layout (create-type e2e: document-types-page-vsplit height stays 0). */
.root-f9ad1cd[data-archetype="list-detail"] {
  flex: 1 1 0;
  align-self: stretch;
  overflow: hidden;
  min-height: 0;
}

.root-f9ad1cd[data-root-mode="settings"] {
  gap: var(--space-2);
  padding: 0 0 var(--space-6);
  margin: 0;
}

.root-f9ad1cd[data-root-mode="fill"] {
  flex: 1 1 0;
  overflow: hidden;
}

/* Matrix: the ListColumn card is capped at the page height so the matrix scrollport owns
   overflow, but never below 32rem — on very short (phone) viewports the commit bar + toolbar
   would otherwise leave the scrollport no room. Then the page root scrolls to the card. */
.root-f9ad1cd[data-archetype="matrix"] {
  overflow-x: hidden;
  overflow-y: auto;
}

.root-f9ad1cd[data-archetype="matrix"] > [data-component="card"] {
  flex-shrink: 0;
  max-height: max(100%, 32rem);
}

/* Standalone embeds CenterCardLayout (`<main>`); stay layout-transparent. */
.root-f9ad1cd[data-root-mode="standalone"] {
  display: contents;
}


/* Shared list / detail / form layout patterns. */

.panelStack-67ac79f {
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap);
  min-width: 0;
}

.panelStack-67ac79f[data-layout="responsive-grid"] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: var(--layout-gap);
  align-items: stretch;
  justify-items: stretch;
}

@media (min-width: 40rem) {
  .panelStack-67ac79f[data-layout="responsive-grid"] {
    column-gap: var(--space-2);
    row-gap: var(--space-2);
  }
}

.panelStack-67ac79f[data-layout="responsive-grid"] > [data-panel="true"] {
  margin: 0;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-width: 0;
  max-height: 400px;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  justify-self: stretch;
}

.panelStack-67ac79f[data-layout="responsive-grid"] > [data-panel="true"] > :last-child {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* CardPanelsLayout::PrimaryAside — first panel is the primary surface, the rest stack in an
   aside column. Narrow (default): one column, primary first, aside flows below (never hidden).
   Wide (card content container ≥ 48rem): two columns, primary fills the row height. */
.panelStack-67ac79f[data-layout="primary-aside"] {
  /* Inside a CardLayout::Fill card the stack is height-bound (card .content hides overflow);
     scrolling here keeps the aside reachable below the primary in the stacked arrangement. */
  overflow-y: auto;
  min-height: 0;
}

.primaryAsidePrimary-67ac79f,
.primaryAsideAside-67ac79f {
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap);
  min-width: 0;
}

/* Stacked arrangement: a definite 70vh cell instead of a fill-height chain so the page scrolls
   to the aside. `height` (not only `min-height`) keeps the size definite so fill children
   (`height: 100%` PDF embeds) resolve against it; taller content scrolls inside the cell. */
.primaryAsidePrimary-67ac79f {
  height: 70vh;
  min-height: 0;
  overflow: auto;
  flex: 0 0 auto;
}

.primaryAsidePrimary-67ac79f > [data-panel="true"] {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.primaryAsidePrimary-67ac79f > [data-panel="true"] > :last-child {
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.primaryAsideAside-67ac79f {
  flex: 0 0 auto;
}

@container (min-width: 48rem) {
  .panelStack-67ac79f[data-layout="primary-aside"] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(20rem, 1fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
    overflow: hidden;
  }

  /* Single panel (no aside slot): primary spans both columns. */
  .primaryAsidePrimary-67ac79f:only-child {
    grid-column: 1 / -1;
  }

  .primaryAsidePrimary-67ac79f {
    height: auto;
    min-height: 0;
    overflow: hidden;
  }

  .primaryAsideAside-67ac79f {
    min-height: 0;
    overflow-y: auto;
  }
}

.listCardBody-67ac79f {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.listCardBody-67ac79f[data-list-grow="true"] {
  /* Prefer auto basis so height:auto cards do not collapse; fill-height cards override below. */
  flex: 1 1 auto;
  min-height: 0;
}

.listCardBody-67ac79f[data-list-grow="false"] {
  flex: 0 1 auto;
}

.listCardTop-67ac79f {
  flex-shrink: 0;
  min-width: 0;
  /* Cap height so help/status cannot starve the list table scrollport on short
     viewports (e.g. e2e 1280×625). Overflow scrolls within the top slot. */
  max-height: 40%;
  overflow-x: hidden;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

/* Space messages (e.g. list fetch errors) from the table chrome below. */
.listCardTop-67ac79f:has(*) {
  margin-bottom: var(--layout-gap);
}

.listTableSection-67ac79f {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.listTableSection-67ac79f[data-list-grow="true"] {
  /* Prefer auto basis so height:auto cards do not collapse; fill-height cards override via
     `card.module.css` `[data-fill-height] … [data-list-grow]`. Keep a usable floor so a tall
     listCardTop cannot shrink the table to ~0 after async row insertion. */
  flex: 1 1 auto;
  min-height: 12rem;
}

.listTableSection-67ac79f[data-list-grow="false"] {
  flex: 0 1 auto;
}

.actionRow-67ac79f {
  display: flex;
  gap: var(--layout-gap);
  min-width: 0;
  margin-top: var(--space-4);
}

.actionRow-67ac79f[data-direction="column"] {
  flex-direction: column;
}

.actionRow-67ac79f[data-direction="row"] {
  flex-direction: row;
}

.actionRow-67ac79f[data-margin-top="none"] {
  margin-top: 0;
}

.actionRow-67ac79f[data-margin-bottom="default"] {
  margin-bottom: var(--space-3);
}

.actionRow-67ac79f[data-margin-bottom="none"] {
  margin-bottom: 0;
}

.actionRow-67ac79f[data-gap="loose"] {
  gap: var(--space-4);
}

.actionRow-67ac79f[data-align="start"] {
  justify-content: flex-start;
}

.actionRow-67ac79f[data-align="end"] {
  justify-content: flex-end;
}

.actionRow-67ac79f[data-align="center"] {
  justify-content: center;
}

.actionRow-67ac79f[data-align="space-between"] {
  justify-content: space-between;
}

/* Column: align maps to the cross axis so buttons hug their labels. */
.actionRow-67ac79f[data-direction="column"][data-align="start"] {
  align-items: flex-start;
}

.actionRow-67ac79f[data-direction="column"][data-align="end"] {
  align-items: flex-end;
}

.actionRow-67ac79f[data-direction="column"][data-align="center"] {
  align-items: center;
}

.actionRow-67ac79f[data-direction="column"][data-align="space-between"] {
  align-items: flex-start;
}

.actionRow-67ac79f[data-wrap="wrap"] {
  flex-wrap: wrap;
}

.actionRow-67ac79f[data-wrap="nowrap"] {
  flex-wrap: nowrap;
}

.fieldRow-67ac79f {
  display: flex;
  flex-direction: column;
  gap: var(--space-1-5);
  font-size: var(--text-sm);
}

.fieldRowWithMargin-67ac79f {
  display: flex;
  flex-direction: column;
  gap: var(--space-1-5);
  font-size: var(--text-sm);
  margin-top: var(--space-3);
}

.introText-67ac79f {
  margin: 0;
  line-height: 1.5;
  white-space: pre-line;
}

.introText-67ac79f[data-surface="panel"] {
  margin: 0 0 var(--space-4);
  color: var(--color-text-main);
}

.introText-67ac79f[data-surface="inline"] {
  margin: 0 0 var(--space-3);
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}


/* Panel: subsection within a Card (e.g. Information, Delete). Muted background vs card.
   No outer margin — spacing between panels is owned by PanelStackView (gap). */
.root-dc2669b {
  width: auto;
  background: var(--color-bg-main);
  color: var(--color-text-main);
  border-radius: var(--radius-md);
  padding: var(--panel-padding);
  box-sizing: border-box;
  margin: 0;
}

.root-dc2669b[data-collapsible="true"] {
  padding: 0;
  --collapsible-chrome-inset: var(--panel-padding);
}

.root-dc2669b[data-collapsible="true"] .content-dc2669b,
.root-dc2669b[data-collapsible="true"] .contentWithTrailingPreview-dc2669b {
  padding: 0 var(--panel-padding) var(--panel-padding);
}

.root-dc2669b[data-collapsible="true"] [data-component="intro-text"] {
  padding-left: var(--panel-padding);
  padding-right: var(--panel-padding);
}

.titleRow-dc2669b {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--layout-gap);
  margin-bottom: var(--layout-gap);
  min-width: 0;
}

.title-dc2669b {
  font-weight: var(--font-bold);
  font-size: var(--text-base);
  color: var(--color-text-main);
  margin: 0;
}

.titleSpacer-dc2669b {
  flex: 1;
  min-width: 0;
}

.helpIcon-dc2669b {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--color-text-muted);
}

.content-dc2669b {
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap);
}

/* Document preview + metadata: container queries the available width.
   Narrow: preview centered on top, metadata left-aligned below.
   Wide: metadata left, preview on the right. */
.contentWithTrailingPreview-dc2669b {
  container-type: inline-size;
  container-name: panel-trailing-preview;
  width: 100%;
  min-width: 0;
}

.contentWithTrailingPreviewLayout-dc2669b {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-5);
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.contentPrimary-dc2669b {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap);
  align-self: stretch;
}

.trailingPreview-dc2669b {
  order: -1;
  flex: 0 0 auto;
  width: fit-content;
  max-width: 100%;
  box-sizing: border-box;
  align-self: center;
}

/* Preview (~12.5rem) + gap + room for a nowrap document number. */
@container panel-trailing-preview (min-width: 30rem) {
  .contentWithTrailingPreviewLayout-dc2669b {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
  }

  .contentPrimary-dc2669b {
    flex: 1 1 auto;
    min-width: 0;
  }

  .trailingPreview-dc2669b {
    order: 0;
    align-self: flex-start;
    margin-left: auto;
  }
}


/* Vertical stack of option / table / message slots inside a panel body. */

.stack-ccd7a95 {
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap);
  min-width: 0;
}

.optionSlot-ccd7a95,
.tableSlot-ccd7a95,
.messageSlot-ccd7a95 {
  min-width: 0;
}


.root-78b0a0e {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  width: 100%;
}

.fileLine-78b0a0e {
  font-size: var(--text-sm);
  word-break: break-all;
  margin: 0;
  min-height: 1.25rem;
}

.chooseButton-78b0a0e {
  display: none;
}

@media (max-width: 40rem), (pointer: coarse) {
  .chooseButton-78b0a0e {
    display: block;
    margin-top: var(--space-2);
  }
}


.portalLayer-4145f26 {
  position: fixed;
  inset: 0;
  z-index: var(--z-portal);
  pointer-events: none;
  isolation: isolate;
}

.portalLayerContained-4145f26 {
  position: absolute;
}

.portalLayer-4145f26 .overlay-4145f26 {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: auto;
  background: transparent;
}

.portalLayerContained-4145f26 .overlay-4145f26 {
  position: absolute;
}

.portalLayer-4145f26 .panel-4145f26 {
  z-index: 1;
  pointer-events: auto;
}

.panel-4145f26 {
  position: fixed;
  min-width: 16rem;
  max-width: min(24rem, calc(100vw - 2rem));
  padding: var(--space-3);
  color: var(--color-text-main);
  background-color: var(--color-card-bg);
  border: 1px solid var(--color-dropdown-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-popover);
}

.panelContained-4145f26 {
  position: absolute;
}

.panel-4145f26[data-anchor-visible="false"] {
  visibility: hidden;
  pointer-events: none;
}


.root-d3ec00e {
  display: flex;
  flex-direction: column;
  gap: var(--space-1-5);
  width: 100%;
}

.labelRow-d3ec00e {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  font-size: var(--text-sm);
  line-height: 1.35;
  color: var(--color-text-main);
}

.label-d3ec00e {
  margin: 0;
}

.percent-d3ec00e {
  margin: 0;
  font-variant-numeric: tabular-nums;
  color: var(--color-text-muted);
  flex-shrink: 0;
}

.bar-d3ec00e {
  display: block;
  width: 100%;
  height: 0.5rem;
  border: none;
  border-radius: var(--radius-full);
  overflow: hidden;
  background: var(--color-card-border);
  color: var(--color-cta);
}

.bar-d3ec00e::-webkit-progress-bar {
  background: var(--color-card-border);
  border-radius: var(--radius-full);
}

.bar-d3ec00e::-webkit-progress-value {
  background: var(--color-cta);
  border-radius: var(--radius-full);
}

.bar-d3ec00e::-moz-progress-bar {
  background: var(--color-cta);
  border-radius: var(--radius-full);
}


.fieldset-15fc5e8 {
  margin: 0;
  padding: 0;
  border: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.legend-15fc5e8 {
  padding: 0;
  margin: 0 0 var(--space-1);
  /* Same weight and size as every other field label (form_field .label). */
  font-weight: var(--font-regular);
  font-size: var(--text-sm);
  color: var(--color-text-main);
}

.option-15fc5e8 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  line-height: 1.4;
  cursor: pointer;
}

/* Described options: each choice is a card so its guidance text has somewhere to live. */
.optionCard-15fc5e8 {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-3);
  font-size: var(--text-sm);
  line-height: 1.45;
  cursor: pointer;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-raised);
}

.fieldset-15fc5e8:disabled .option-15fc5e8,
.fieldset-15fc5e8:disabled .optionCard-15fc5e8 {
  color: var(--color-text-muted);
  cursor: not-allowed;
}

.optionCard-15fc5e8:hover {
  border-color: var(--color-accent-hover);
}

.optionCard-15fc5e8:has(input:checked) {
  border-color: var(--color-accent);
  background: var(--color-surface-muted);
}

.optionCard-15fc5e8:has(input:focus-visible) {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.optionCard-15fc5e8 input {
  /* Align the control with the first line of the label, not the middle of the card. */
  margin-top: var(--space-0-5);
  flex: 0 0 auto;
}

.optionText-15fc5e8 {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}

.optionLabel-15fc5e8 {
  color: var(--color-text-main);
}

/* Only cards head their guidance text; plain options keep the regular label weight. */
.optionCard-15fc5e8 .optionLabel-15fc5e8 {
  font-weight: var(--font-bold);
}

.optionDescription-15fc5e8 {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  line-height: 1.5;
}

/* Native radio fill >= 3:1 against the card (WCAG 1.4.11). */
.fieldset-15fc5e8 input[type="radio"] {
  accent-color: var(--color-focus);
}

/* Icon tiles: a grid of cards instead of a stacked list. The legend is a grid child too (a
   direct sibling of the option labels inside the same fieldset), so it must span every column
   or it would sit in the grid as its own narrow tile. */
.fieldset-15fc5e8[data-icon-tiles="true"] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
  gap: var(--space-2);
}

.fieldset-15fc5e8[data-icon-tiles="true"] > .legend-15fc5e8 {
  grid-column: 1 / -1;
}

.optionIcon-15fc5e8 {
  display: flex;
  justify-content: center;
  margin-bottom: var(--space-1);
}

/* Icon tiles center their content column instead of the plain cards' left-icon/right-text row.
   The native radio moves to the corner (still visible, not color-only -- WCAG 1.4.1) so the icon
   and label can center under it. */
.optionCardIconTile-15fc5e8 {
  position: relative;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: var(--space-5);
}

.optionCardIconTile-15fc5e8 input {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  margin: 0;
}

.optionCardIconTile-15fc5e8 .optionText-15fc5e8 {
  align-items: center;
}


.root-481bfda {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.caption-481bfda {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* Horizontal scroll inside the grid only, never the page. */
.scroll-481bfda {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
}

.table-481bfda {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--text-sm);
}

.corner-481bfda,
.columnHeader-481bfda {
  text-align: left;
  vertical-align: bottom;
  padding: var(--space-2) var(--space-3);
  color: var(--color-text-main);
  background: var(--color-button-alt-bg);
  border-bottom: 1px solid var(--color-card-border);
  font-weight: var(--font-bold);
  white-space: nowrap;
}

.corner-481bfda {
  color: var(--color-text-muted);
  font-weight: var(--font-regular);
}

/* Sticky first column: the scenario stays visible while levels scroll. */
.corner-481bfda,
.rowHeader-481bfda {
  position: sticky;
  left: 0;
  z-index: 1;
  box-shadow: 1px 0 0 var(--color-card-border);
}

.rowHeader-481bfda {
  text-align: left;
  vertical-align: top;
  padding: var(--space-2) var(--space-3);
  background: var(--color-card-bg);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
  min-width: 8rem;
  max-width: 14rem;
}

/* Authoring: two independently editable axis labels in the corner cell. */
.axisLabels-481bfda {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  font-weight: var(--font-regular);
}

/* Authoring: a row/column header's label and its remove button share one line. */
.headerAction-481bfda {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.headerLabel-481bfda {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}

.row-481bfda + .row-481bfda .rowHeader-481bfda,
.row-481bfda + .row-481bfda .cell-481bfda {
  border-top: 1px solid var(--color-card-border);
}

.cell-481bfda {
  vertical-align: top;
  padding: var(--space-2) var(--space-3);
  min-width: 10rem;
  color: var(--color-text-main);
}

.root-481bfda[data-density="compact"] .cell-481bfda {
  min-width: 0;
}

.cellBody-481bfda {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
}

.descriptor-481bfda {
  color: var(--color-text-muted);
  line-height: 1.35;
}

/* The chosen level's column, set elsewhere on the page. */
.columnHeader-481bfda[data-highlighted="true"],
.cell-481bfda[data-highlighted="true"] {
  background: var(--color-surface-muted);
  box-shadow: inset 0 0 0 1px var(--color-accent);
}

.cell-481bfda[data-plot] {
  box-shadow: inset 0 0 0 2px var(--color-accent);
}

.provenance-481bfda {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* Rating sheet: the whole cell is the label of its radio. */
.pick-481bfda {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  cursor: pointer;
  min-height: 100%;
}

.radio-481bfda {
  margin: var(--space-1) 0 0;
  flex-shrink: 0;
  accent-color: var(--color-accent);
}

.radio-481bfda:focus-visible {
  outline: var(--focus-ring);
  outline-offset: 2px;
}

.cell-481bfda[data-selected="true"] {
  background: var(--color-surface-muted);
  box-shadow: inset 0 0 0 2px var(--color-accent);
}

.root-481bfda[data-mode="rating"] .cell-481bfda:hover {
  background: var(--color-button-alt-hover);
}

/* Authoring: the whole cell opens its editor. */
.editCell-481bfda {
  all: unset;
  box-sizing: border-box;
  display: block;
  width: 100%;
  cursor: pointer;
  border-radius: var(--radius-sm);
}

.editCell-481bfda:hover {
  background: var(--color-button-alt-hover);
}

.editCell-481bfda:focus-visible {
  outline: var(--focus-ring);
  outline-offset: 2px;
}


.root-137789e {
  min-width: 0;
}

/* Document identity: fill host; title clips; number + star on the secondary row. */
.rootDocument-137789e {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Title — matches StackedText::document primary (italic, truncated). */
.name-137789e {
  display: block;
  min-width: 0;
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.numberRow-137789e {
  display: flex;
  align-items: center;
  gap: var(--space-1-5);
  min-width: 0;
}

.numberLink-137789e {
  display: block;
  flex: 0 1 auto;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* When a title is shown above, number is muted secondary (StackedText::document). */
.numberLinkMuted-137789e {
  color: var(--color-text-muted);
}

.numberPlain-137789e {
  display: block;
  flex: 0 1 auto;
  min-width: 0;
  color: inherit;
  font: inherit;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: default;
}

.numberPlainMuted-137789e {
  color: var(--color-text-muted);
}

.accessDeniedIcon-137789e {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  color: var(--color-text-muted);
  width: 1rem;
  height: 1rem;
}

.bookmarkSlot-137789e {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
}

.number-137789e {
  min-width: 0;
}

.numberLink-137789e:hover .number-137789e,
.numberLink-137789e:focus-visible .number-137789e {
  text-decoration: underline;
}

.withAvatar-137789e {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.link-137789e {
  display: block;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

/* Target descendant spans from StackedTextView (cross-module hashed classes). */
.link-137789e:hover span,
.link-137789e:focus-visible span {
  text-decoration: underline;
}


.root-55d72fe {
  position: fixed;
  inset: 0;
  z-index: var(--z-assemble-overlay);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--duration-slow) ease;
  user-select: none;
  -webkit-user-select: none;
}

.rootContained-55d72fe {
  position: absolute;
}

.rootVisible-55d72fe {
  opacity: 1;
  pointer-events: auto;
}

.rootFading-55d72fe {
  opacity: 0;
  pointer-events: none;
}

.backdrop-55d72fe {
  position: fixed;
  inset: 0;
  background: transparent;
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  animation: blurIn 2000ms ease-out forwards;
  z-index: 0;
}

.rootFading-55d72fe .backdrop-55d72fe {
  animation: blurOut var(--duration-slow) ease-in forwards;
}

@keyframes blurIn {
  from {
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
  }
  to {
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }
}

@keyframes blurOut {
  from {
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }
  to {
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .backdrop-55d72fe {
    animation: none;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }

  .rootFading-55d72fe .backdrop-55d72fe {
    animation: none;
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
  }
}

/* Soften CSS blur on coarse/compact devices — matches rs3d assemble demo and
   pairs with Overlay quality's constrained framing / DPR caps in the island. */
@media (pointer: coarse) and (max-width: 64rem) {
  .backdrop-55d72fe {
    animation: none;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .rootFading-55d72fe .backdrop-55d72fe {
    animation: none;
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
  }
}

.canvas-55d72fe {
  position: relative;
  z-index: 1;
  width: 100vw;
  height: 100vh;
  display: block;
  touch-action: none;
  background: transparent;
}

.rootContained-55d72fe .canvas-55d72fe {
  width: 100%;
  height: 100%;
}

.closeButton-55d72fe {
  position: fixed;
  top: max(0.75rem, env(safe-area-inset-top, 0px));
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: var(--radius-full);
  padding: 0;
  cursor: pointer;
  background: color-mix(in srgb, var(--color-card-bg) 82%, transparent);
  color: var(--color-text-main);
  box-shadow: var(--shadow-fab);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.closeButton-55d72fe:hover {
  background: var(--color-dropdown-item-hover);
}

.closeButton-55d72fe:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}


.root-48e1485 {
  position: relative;
  width: 100%;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.canvas-48e1485 {
  width: 100%;
  height: 100%;
  display: block;
  touch-action: none;
}

/* Stay in-layout at full FAB size while opacity-hidden so attach/resize use the
   real backing-store dimensions (not a 1×1 offscreen canvas). */
.canvasPending-48e1485 {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}

.canvasFallback-48e1485 {
  display: none;
}


.root-6c19d4f {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
}


.panel-599b862 {
  flex-shrink: 0;
  width: 16rem;
  background: var(--color-bg-sidebar);
  color: var(--color-text-on-dark);
  overflow-y: auto;
  transition: transform var(--duration-normal), margin var(--duration-normal);
  border-right: 1px solid var(--color-card-border);
  box-shadow: var(--color-card-shadow);
}

.panelHidden-599b862 {
  transform: translateX(-100%);
  margin-left: -16rem;
}

.linkList-599b862 {
  list-style: none;
  margin: 0;
  padding: var(--space-2) 0;
}

.sectionDivider-599b862 {
  list-style: none;
  margin: var(--space-2) var(--space-4);
  border-top: 1px solid var(--color-card-border);
}

/* Matches old SidebarItem: flex items-center pl-4 p-2 gap-2 */
.link-599b862 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  padding-left: var(--space-4);
  color: var(--color-text-on-dark-muted);
  text-decoration: none;
  border-left: 3px solid transparent;
}

.link-599b862:hover {
  background: var(--color-interactive-hover-on-dark);
  color: var(--color-text-on-dark);
}

.link-599b862:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: -2px;
}

.linkActive-599b862 {
  color: var(--color-text-on-dark);
  border-left-color: var(--color-accent);
  background: var(--color-interactive-hover-on-dark);
}

.linkIcon-599b862 {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.linkIconPlaceholder-599b862 {
  color: var(--color-text-on-dark-muted);
  opacity: 0.55;
  font-size: var(--text-sm);
  line-height: 1;
  user-select: none;
}

.dropdown-599b862 {
  list-style: none;
  margin: 0;
}

.dropdownToggle-599b862 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  padding-left: var(--space-4);
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  color: var(--color-text-on-dark-muted);
  cursor: pointer;
  font: inherit;
  border-left: 3px solid transparent;
}

.dropdownToggle-599b862:hover {
  background: var(--color-interactive-hover-on-dark);
  color: var(--color-text-on-dark);
}

.dropdownToggle-599b862:focus-visible,
.nestedDropdownToggle-599b862:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: -2px;
}

/* Slot only: pushes the shared ChevronToggleView to the row end. */
.dropdownChevron-599b862 {
  margin-left: auto;
  flex-shrink: 0;
  display: inline-flex;
  opacity: 0.8;
}

.subList-599b862 {
  list-style: none;
  margin: 0;
  padding: 0;
  padding-left: var(--space-6);
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height var(--duration-normal) ease, opacity var(--duration-fast) ease;
}

.subList-599b862[data-open="true"] {
  max-height: 20rem;
  opacity: 1;
}

/* Administration L1: room for multiple nested L2 groups */
.subListAdminRoot-599b862[data-open="true"] {
  max-height: 100rem;
}

.nestedDropdown-599b862 {
  list-style: none;
  margin: 0;
}

.nestedDropdownToggle-599b862 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1-5) var(--space-3) var(--space-1-5) var(--space-1);
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  color: var(--color-text-on-dark-muted);
  cursor: pointer;
  font: inherit;
  border-left: 3px solid transparent;
}

.nestedDropdownToggle-599b862:hover {
  background: var(--color-interactive-hover-on-dark);
  color: var(--color-text-on-dark);
}

.nestedSubList-599b862 {
  list-style: none;
  margin: 0;
  padding: 0;
  padding-left: var(--space-4);
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height var(--duration-normal) ease, opacity var(--duration-fast) ease;
}

.nestedSubList-599b862[data-open="true"] {
  max-height: 24rem;
  opacity: 1;
}

.overlay-599b862 {
  position: fixed;
  inset: 0;
  background: var(--color-overlay);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: var(--z-side-panel-overlay);
  display: none;
}

.overlayVisible-599b862 {
  display: block;
}

@media (max-width: 47.99rem) {
  .panel-599b862 {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: var(--z-side-panel);
  }

  .linkList-599b862 {
    padding-top: var(--space-4);
  }
}

@media (min-width: 48rem) {
  .panelHidden-599b862 {
    transform: none;
    margin-left: 0;
  }

  .overlayVisible-599b862 {
    display: none;
  }
}

/* Matches old ToggleSidebarButton: inline-flex, p-2, text-sm, rounded-lg, focus:ring-2 */
.toggle-7b2d429 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-nav-icon);
  background: transparent;
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
}

.toggle-7b2d429:hover {
  background: var(--color-nav-icon-hover);
}

.toggle-7b2d429:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.toggleIcon-7b2d429 {
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}


.chainList-fff5fb9 {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.chainItem-fff5fb9 {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  font-size: var(--text-sm);
}

.chainStep-fff5fb9 {
  font-weight: var(--font-bold);
}

.codeBadge-fff5fb9 {
  font-family: ui-monospace, monospace;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.verdictIcon-fff5fb9 {
  display: inline-flex;
  flex-shrink: 0;
  line-height: 1;
  color: var(--color-text-muted);
}

[data-sig-passed="true"] .verdictIcon-fff5fb9 {
  color: var(--color-success-text);
}

[data-sig-passed="false"] .verdictIcon-fff5fb9 {
  color: var(--color-danger);
}

.codeLine-fff5fb9 {
  margin: var(--space-1) 0 var(--space-2);
}

.reasonCode-fff5fb9 {
  font-family: ui-monospace, monospace;
  font-size: var(--text-sm);
  word-break: break-all;
}

.expandedBlock-fff5fb9 {
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3);
  margin-top: var(--space-2);
}

.expandedTitle-fff5fb9 {
  font-size: var(--text-base);
  font-weight: var(--font-bold);
  margin: 0 0 var(--space-2);
}

.expandedVerdictRow-fff5fb9 {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
}

.expandedVerdictRow-fff5fb9 .verdictIcon-fff5fb9 {
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.1rem;
}

.expandedReason-fff5fb9 {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.35;
}

.expandedUserLine-fff5fb9 {
  margin: 0 0 var(--space-2);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.expandedUserLabel-fff5fb9 {
  font-weight: var(--font-bold);
  font-size: var(--text-sm);
}

.expandedDetails-fff5fb9 {
  font-size: var(--text-sm);
}

.expandedDetails-fff5fb9 > summary {
  cursor: pointer;
  font-weight: var(--font-bold);
  list-style: none;
  margin: 0 0 var(--space-1);
}

.expandedDetails-fff5fb9 > summary::-webkit-details-marker,
.collapsibleSummary-fff5fb9::-webkit-details-marker {
  display: none;
}

.collapsibleBlock-fff5fb9 {
  margin-top: var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-raised);
  color: var(--color-text-main);
}

.collapsibleDetails-fff5fb9 {
  font-size: var(--text-sm);
}

.collapsibleSummary-fff5fb9 {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1) var(--space-2);
  padding: var(--space-2) var(--space-2);
}

.collapsibleTitle-fff5fb9 {
  font-weight: var(--font-bold);
}

.collapsibleReason-fff5fb9 {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.collapsibleBody-fff5fb9 {
  padding: 0 var(--space-3) var(--space-3);
  border-top: 1px solid var(--color-border);
}

.collapsibleUserLine-fff5fb9 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-1-5) var(--space-2);
  margin-top: var(--space-2);
}

.collapsibleUserLabel-fff5fb9 {
  font-size: var(--text-sm);
  font-style: italic;
  color: var(--color-text-muted);
}

.collapsibleBody-fff5fb9 .chainList-fff5fb9 {
  margin-top: var(--space-1-5);
}

.expandedDetails-fff5fb9 > summary:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}


.body-d296bb5 {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  flex: 1 1 auto;
  min-height: 0;
}

.intro-d296bb5 {
  margin: 0;
  font-size: var(--text-base);
  line-height: 1.45;
  flex-shrink: 0;
}

.list-d296bb5 {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(7rem, auto) 1fr;
  gap: var(--space-2) var(--space-3);
  align-items: start;
  flex-shrink: 0;
}

.term-d296bb5 {
  margin: 0;
  font-weight: var(--font-bold);
  font-size: var(--text-sm);
}

.value-d296bb5 {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.4;
  word-break: break-word;
}

.meaningText-d296bb5 {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.45;
  font-style: italic;
}

.digest-d296bb5 {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
  font-size: var(--text-xs);
  line-height: 1.35;
}

.digestDetails-d296bb5 {
  margin: 0;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  flex-shrink: 0;
}

.digestDetails-d296bb5 summary {
  cursor: pointer;
  font-weight: var(--font-bold);
}

.previewBlock-d296bb5 {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1 1 0;
  min-height: 0;
  align-items: stretch;
}

.previewHost-d296bb5 {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  min-width: 0;
}

/* Desktop: PDF frame fills remaining modal body height. */
.previewFrame-d296bb5 {
  width: 100%;
  flex: 1 1 0;
  min-height: 12rem;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-surface-muted);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.previewFrame-d296bb5 > * {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
}

/* Mobile / iOS: centered tappable thumbnail that opens the native PDF viewer. */
.mobilePreviewLink-d296bb5 {
  display: flex;
  justify-content: center;
  width: 100%;
  text-decoration: none;
  color: inherit;
}

.mobilePreviewLink-d296bb5:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: var(--radius-md);
}


.banners-35dcf95 {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* Strip load-error sits flush above the navbar (no extra gap). */
.loadError-35dcf95 {
  flex: 0 0 auto;
}

.banner-35dcf95 {
  width: 100%;
  box-sizing: border-box;
  padding: var(--space-2) var(--space-4);
  text-align: center;
  border-bottom: 1px solid var(--color-card-border);
  box-shadow: var(--color-card-shadow);
}

/* Dismiss control sits at the viewport (strip) right edge; message stays centered. */
.bannerDismiss-35dcf95 {
  position: relative;
  padding: var(--space-2) 0;
}

.inner-35dcf95 {
  max-width: 60rem;
  margin-inline: auto;
  text-align: center;
  white-space: pre-wrap;
}

.centerMessage-35dcf95 {
  max-width: 60rem;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 2.5rem 0 var(--space-4);
  text-align: center;
  white-space: pre-wrap;
}

.dismissButton-35dcf95 {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 1;
}

.dismissButton-35dcf95 :where(a, button) {
  color: inherit;
  font-size: var(--text-lg);
  font-weight: var(--font-bold);
  opacity: 0.85;
  min-height: auto;
  min-width: auto;
  padding: var(--space-0-5) var(--space-2);
  border-radius: var(--radius-sm);
}

.dismissButton-35dcf95 :where(a, button):hover:not(:disabled) {
  opacity: 1;
  background: var(--color-interactive-hover-on-dark);
}

.previewCaption-35dcf95 {
  margin-top: var(--space-1-5);
  font-size: var(--text-xs);
  font-style: italic;
  text-align: center;
  color: var(--color-text-muted);
}

.levelInfo-35dcf95 {
  background: var(--tone-info-bg);
  color: var(--tone-info-fg);
}

.levelNotice-35dcf95 {
  background: var(--tone-notice-bg);
  color: var(--tone-notice-fg);
}

.levelWarning-35dcf95 {
  background: var(--tone-warning-bg);
  color: var(--tone-warning-fg);
}

.levelError-35dcf95 {
  background: var(--tone-danger-bg);
  color: var(--tone-danger-fg);
}

.levelCritical-35dcf95 {
  background: var(--tone-critical-bg);
  color: var(--tone-critical-fg);
}

.dismissButton-35dcf95:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

/* Pointer target >= 24px (WCAG 2.5.8). */
.dismissButton-35dcf95 {
  min-width: 1.5rem;
  min-height: 1.5rem;
}


/* Generic content placeholder shimmer for label/value grids and panel bodies. */

.line-2dee608 {
  display: block;
  height: 0.9rem;
  width: 100%;
  max-width: 12rem;
  border-radius: var(--radius-sm);
  background: linear-gradient(
    90deg,
    var(--color-card-bg) 0%,
    var(--color-button-alt-hover) 50%,
    var(--color-card-bg) 100%
  );
  background-size: 200% 100%;
  animation: skeletonShimmer 1.4s ease-in-out infinite;
}

.badge-2dee608 {
  display: inline-block;
  height: 1.35rem;
  width: 5.5rem;
  border-radius: var(--radius-full);
  background: linear-gradient(
    90deg,
    var(--color-card-bg) 0%,
    var(--color-button-alt-hover) 50%,
    var(--color-card-bg) 100%
  );
  background-size: 200% 100%;
  animation: skeletonShimmer 1.4s ease-in-out infinite;
}

.block-2dee608 {
  display: block;
  height: 4.5rem;
  width: 100%;
  max-width: 18rem;
  border-radius: var(--radius-md);
  background: linear-gradient(
    90deg,
    var(--color-card-bg) 0%,
    var(--color-button-alt-hover) 50%,
    var(--color-card-bg) 100%
  );
  background-size: 200% 100%;
  animation: skeletonShimmer 1.4s ease-in-out infinite;
}

@keyframes skeletonShimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .line-2dee608,
  .badge-2dee608,
  .block-2dee608 {
    animation: none;
    background: var(--color-button-alt-hover);
  }
}


/* Status spinner: animated ring + accent segment. Theme-driven colors. */
.root-1128f56 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  flex-shrink: 0;
  color: var(--color-text-muted);
}

/* Absorbs fill-height flex stretch so the spinner stays at its intrinsic size. */
.fillHost-1128f56 {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}

.svg-1128f56 {
  display: block;
  width: 100%;
  height: 100%;
  animation: spin 0.7s linear infinite;
}

/* Paused (not `animation: none`): an always-mounted spinner that flips `spinning` on/off
   across back-to-back requests freezes in place and resumes mid-rotation instead of
   restarting from 0% on every activation. */
.svgIdle-1128f56 {
  animation-play-state: paused;
}

/* Track (muted ring) + accent segment use currentColor and fill on paths */
.pathTrack-1128f56 {
  fill: currentColor;
  opacity: 0.25;
}

.pathSpin-1128f56 {
  fill: var(--color-cta);
  opacity: 1;
}

.sizeSm-1128f56 {
  width: 1.25rem;
  height: 1.25rem;
}

.sizeMd-1128f56 {
  width: 2rem;
  height: 2rem;
}

.sizeLg-1128f56 {
  width: 2.5rem;
  height: 2.5rem;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}


.root-8ca26f8 {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}

/* Document identity: fill host; title clips; number line resists shrink. */
.rootDocument-8ca26f8 {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.userWithAvatar-8ca26f8 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.userText-8ca26f8 {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}

.primary-8ca26f8 {
  display: block;
  min-width: 0;
}

.primaryTruncate-8ca26f8 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.primaryItalic-8ca26f8 {
  font-style: italic;
}

.secondary-8ca26f8 {
  display: block;
  min-width: 0;
}

.secondaryMuted-8ca26f8 {
  color: var(--color-text-muted);
}

.secondaryItalic-8ca26f8 {
  font-style: italic;
}

.secondaryTruncate-8ca26f8 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Number line: never ellipsis by default; allow shrink so the column can truncate. */
.secondaryNowrap-8ca26f8 {
  white-space: nowrap;
  overflow: visible;
  min-width: 0;
}

.secondaryUppercase-8ca26f8 {
  text-transform: uppercase;
}


.root-c8075cf {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  font-size: var(--text-sm);
  line-height: 1.1;
  padding: 0.1rem var(--space-2);
  border-radius: var(--radius-sm);
  border: 1px solid var(--tone-border, transparent);
  color: var(--tone-fg, inherit);
  background: var(--tone-bg, transparent);
  max-width: none;
  width: max-content;
  align-self: flex-start;
  box-sizing: border-box;
  white-space: nowrap;
}

/* ControlSize (`data-size`): `md` is the base rule above; only sm / lg override it. */
.root-c8075cf[data-size="sm"] {
  font-size: var(--text-xs);
  padding: var(--space-0-5) var(--space-1-5);
}

.root-c8075cf[data-size="lg"] {
  font-size: var(--text-base);
  padding: var(--space-1) var(--space-3);
}

/* BadgeShape::Pill (`data-shape`). */
.root-c8075cf[data-shape="pill"] {
  border-radius: var(--radius-full);
  /* Pills sit in wrapping lists (role pills); the background must wrap the full label. */
  flex-shrink: 0;
}


/* System record strip: a revision ledger ruled off from the card's intro above and its body
   below. Tone appears only in the stamp (StatusBadgeView); the strip itself has no tint. */
.root-fc94ffe {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "ledger actions"
    "error error";
  column-gap: var(--space-4);
  row-gap: var(--space-2);
  align-items: center;
  padding-block: var(--space-3);
  border-block: 1px solid var(--color-card-border);
  min-width: 0;
}

/* revision | stamp; the series line and the sentence span both columns' second cell. */
.ledger-fc94ffe {
  grid-area: ledger;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: var(--space-3);
  row-gap: var(--space-1);
  align-items: center;
  min-width: 0;
}

.series-fc94ffe {
  grid-column: 1 / -1;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  text-decoration: none;
  width: max-content;
  max-width: 100%;
}

.series-fc94ffe:hover,
.series-fc94ffe:focus-visible {
  color: var(--color-link);
  text-decoration: underline;
}

.rev-fc94ffe {
  grid-column: 1;
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  font-variant-numeric: tabular-nums;
  color: var(--color-text-main);
  text-decoration: none;
  min-width: 2.5ch;
  text-align: right;
}

a.rev-fc94ffe:hover,
a.rev-fc94ffe:focus-visible {
  color: var(--color-link);
  text-decoration: underline;
}

.stamp-fc94ffe {
  grid-column: 2;
  display: flex;
  align-items: center;
  min-width: 0;
}

.sentence-fc94ffe {
  grid-column: 2;
  margin: 0;
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  max-width: 60ch;
  color: var(--color-text-main);
}

.nextStep-fc94ffe {
  white-space: pre-line;
}

.detail-fc94ffe {
  color: var(--color-text-muted);
}

.detail-fc94ffe::before {
  content: " ";
}

.actionsColumn-fc94ffe {
  grid-area: actions;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--space-2);
  flex-shrink: 0;
}

.actionsPrimary-fc94ffe,
.actionsSecondary-fc94ffe {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: var(--space-2);
}

.error-fc94ffe {
  grid-area: error;
  min-width: 0;
}

.root-fc94ffe[data-pending="true"] .actionsColumn-fc94ffe {
  opacity: 0.7;
}

@container (max-width: 48rem) {
  .root-fc94ffe {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "ledger"
      "actions"
      "error";
  }

  .actionsColumn-fc94ffe {
    align-items: flex-start;
  }

  .actionsPrimary-fc94ffe,
  .actionsSecondary-fc94ffe {
    justify-content: flex-start;
  }
}


/* Flowbite-style table. Uses theme vars from theme.css. */

.root-76c1457 {
  position: relative;
  min-width: 0;
  background: var(--color-card-bg);
  color: var(--color-text-main);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  box-shadow: var(--color-card-shadow);
  box-sizing: border-box;
}

/* Nested in an existing card/drawer: no second chrome layer */
.rootFlat-76c1457 {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

/* Fills a flex parent (e.g. fill-height list card) so the scrollport can use remaining height */
.rootPaneFill-76c1457 {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

/* vSplit list cards: table grows with few rows, caps at parent height; only then does tbody scroll.
   Use min-height:auto (not 0) so fixed_cap_scroll can contribute intrinsic height inside
   auto-sized GridCell dashboard cards — min-height:0 + overflow:hidden collapses to ~0. */
.rootPaneContent-76c1457 {
  display: flex;
  flex-direction: column;
  max-height: 100%;
  flex: 0 1 auto;
  width: 100%;
  align-self: stretch;
  overflow: hidden;
}

/* Horizontal scroll only around the table so the toolbar (and its dropdowns) are not clipped */
.tableScroll-76c1457 {
  min-width: 0;
  overflow-x: auto;
}

/* Parent owns overflow (e.g. training matrix `.matrixTableScroll`); inner scrollport would break
   `position: sticky` on `thead th` relative to that parent. */
.tableScrollFlat-76c1457 {
  min-width: 0;
  overflow: visible;
}

/* Caller supplies the scrollport class (e.g. matrix `.matrixTableScroll`) on this wrapper so the
   toolbar stays outside horizontal/vertical scroll while sticky headers use this element. */
.tableScrollPortHost-76c1457 {
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

/* Matrices: many role columns must grow past the card and scroll horizontally. */
.tableScrollPortHost-76c1457 .table-76c1457 {
  table-layout: auto;
  max-width: none;
}

.tableScrollPortHost-76c1457 .table-76c1457 th,
.tableScrollPortHost-76c1457 .table-76c1457 td {
  overflow: visible;
}

.tableScrollPortHost-76c1457 .table-76c1457 th:not(:first-child),
.tableScrollPortHost-76c1457 .table-76c1457 td:not(:first-child) {
  width: auto;
  white-space: normal;
}

.tableScrollPortHost-76c1457 .table-76c1457 th:last-child,
.tableScrollPortHost-76c1457 .table-76c1457 td:last-child {
  width: auto;
  min-width: 0;
}

.tableScrollResponsive-76c1457 {
  overflow-x: clip;
}

/* Vertical scroll for load-more; clip leftover horizontal gutter (columns should fit). */
.tableScrollViewport-76c1457 {
  overflow-x: clip;
  overflow-y: auto;
  min-width: 0;
}

/* Grows to fill a flex parent when the table is the primary scroll area (left vSplit lists) */
.tableScrollFill-76c1457 {
  flex: 1 1 0;
  min-height: 0;
}

/* With rootPaneContent + use_inline_max_height false: scrolls when rows overflow; use 0/1/auto so
   height:auto parents do not collapse the scroll area to 0. */
.tableScrollPaneContent-76c1457 {
  flex: 0 1 auto;
  min-height: 0;
}

.table-76c1457 {
  width: 100%;
  max-width: 100%;
  /* Fixed layout fills the card. Interior columns use a fixed rem; last column is
     `max-content` (timestamps, actions); first takes the rest. Hidden columns set
     `width: 0 !important` (below) so they do not reserve space. */
  table-layout: fixed;
  font-size: var(--text-sm);
  text-align: left;
  color: var(--color-text-main);
  /* `separate` so `position: sticky` on `thead` works across browsers (collapse breaks sticky) */
  border-collapse: separate;
  border-spacing: 0;
}

.table-76c1457 th,
.table-76c1457 td {
  min-width: 0;
  box-sizing: border-box;
}

/* Clip identity-column content for title ellipsis; keep `th` overflow visible so sticky
   header `box-shadow` underlines are not clipped. Last column stays visible so
   wrapped role pills and cell actions are not clipped. */
.table-76c1457 td:not(:last-child) {
  overflow: hidden;
}

/* Interior secondary columns hug labels/dates. */
.table-76c1457 th:not(:first-child):not(:last-child),
.table-76c1457 td:not(:first-child):not(:last-child) {
  width: 9rem;
  white-space: nowrap;
}

/* Last column sizes to content (e.g. timestamps) so labels are not crushed.
   Role pills wrap inside this used width instead of expanding past the table.
   `min-width: 12rem` overrides `.table th, td { min-width: 0 }` so Firefox
   cannot crush this column when a `width: 100%` control reports 0 intrinsic
   min-width (https://bugzilla.mozilla.org/show_bug.cgi?id=1060131). */
.table-76c1457 th:last-child,
.table-76c1457 td:last-child {
  width: max-content;
  min-width: 12rem;
}

.tableDense-76c1457 {
  font-size: var(--text-xs);
}

.tableDense-76c1457 th,
.tableDense-76c1457 td {
  padding: var(--space-1-5) var(--space-2);
}

/* Per-column alignment (defaults: first=left, last=right, interior=center) */
.alignLeft-76c1457 {
  text-align: left;
}

.alignCenter-76c1457 {
  text-align: center;
}

.alignRight-76c1457 {
  text-align: right;
}

/*
 * Responsive: progressively hide lower-priority columns.
 * Hide-order 1–3 = interior (720 / 600 / 480px). Hide-order 4 = optional last
 * column (timestamps) only at ≤400px. Breakpoints are intentionally tight:
 * @container uses the card/pane width (often <1200px in split layouts).
 *
 * Under `table-layout: fixed`, neither `display: none` nor `visibility: collapse`
 * reliably drop column width in Chromium — both leave a gap so thead looks short.
 * Zero the column instead (`width: 0 !important` overrides the secondary `9rem`).
 */
@media (max-width: 720px) {
  .tableResponsive-76c1457 :is(th, td)[data-hide-order="1"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}

@media (max-width: 600px) {
  .tableResponsive-76c1457 :is(th, td)[data-hide-order="2"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}

@media (max-width: 480px) {
  .tableResponsive-76c1457 :is(th, td)[data-hide-order="3"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}

@media (max-width: 400px) {
  .tableResponsive-76c1457 :is(th, td)[data-hide-order="4"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}

@container (max-width: 720px) {
  .tableResponsive-76c1457 :is(th, td)[data-hide-order="1"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}

@container (max-width: 600px) {
  .tableResponsive-76c1457 :is(th, td)[data-hide-order="2"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}

@container (max-width: 480px) {
  .tableResponsive-76c1457 :is(th, td)[data-hide-order="3"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}

@container (max-width: 400px) {
  .tableResponsive-76c1457 :is(th, td)[data-hide-order="4"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}


/* Toolbar above table (search + filters).
   Do not raise z-index here — a stacking context on the toolbar paints over the
   scrollport siblings and makes header icon buttons WebDriver-unhittable even when
   they are laid out in the thead below the filters. */
.toolbar-76c1457 {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--table-toolbar-gap-row) var(--table-toolbar-gap-col);
  /* Match `.th` / `.td` horizontal inset so filters align with cell content
     (both shrink on mobile via the `--table-*` tokens in theme.css). */
  padding: var(--table-toolbar-inset-y) var(--table-inset-x);
  border-bottom: 1px solid var(--color-card-border);
  background: var(--color-button-alt-bg);
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.toolbarMain-76c1457 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--table-toolbar-gap-row) var(--table-toolbar-gap-col);
  flex: 1 1 auto;
  min-width: 0;
}

.toolbarFilters-76c1457 {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--table-toolbar-gap-row) var(--table-toolbar-gap-col);
}

.toolbarSearch-76c1457 {
  min-width: 12rem;
  flex: 1 1 auto;
}

.toolbarSearchInput-76c1457 {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-base);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-main);
  color: var(--color-text-main);
  box-sizing: border-box;
}

.toolbarSearchInput-76c1457::placeholder {
  color: var(--color-text-muted);
}

.toolbarFilter-76c1457 {
  min-width: 0;
}

.toolbarActions-76c1457 {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.toolbarActionsInline-76c1457 {
  display: inline-flex;
  align-items: center;
  gap: var(--table-toolbar-gap-row) var(--table-toolbar-gap-col);
  flex-wrap: wrap;
}

/* On narrow viewports, keep search full-width. */
@media (max-width: 1200px) {
  .toolbarSearch-76c1457 {
    min-width: 100%;
    flex: 1 1 100%;
  }
}

.toolbarStacked-76c1457 .toolbarSearch-76c1457 {
  min-width: 100%;
  flex: 1 1 100%;
}

.toolbarStacked-76c1457 .toolbarFilters-76c1457 {
  width: 100%;
}

/* Documents list: fill the card content container (parent has container-type: inline-size). */
.toolbarFiltersFill-76c1457 {
  width: 100%;
}

.toolbarFiltersFill-76c1457 .toolbarMain-76c1457 {
  width: 100%;
}

@container (max-width: 40rem) {
  .toolbarFiltersFill-76c1457 .toolbarSearch-76c1457,
  .toolbarFiltersFill-76c1457 .toolbarFilter-76c1457 {
    flex: 1 1 100%;
    min-width: 100%;
  }

  .toolbarFiltersFill-76c1457 .toolbarFilters-76c1457 {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
  }
}

@container (min-width: 40rem) and (max-width: 64rem) {
  .toolbarFiltersFill-76c1457 .toolbarSearch-76c1457 {
    flex: 1 1 100%;
    min-width: 100%;
  }

  .toolbarFiltersFill-76c1457 .toolbarFilters-76c1457 {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: var(--table-toolbar-gap-row) var(--table-toolbar-gap-col);
  }

  .toolbarFiltersFill-76c1457 .toolbarFilter-76c1457 {
    flex: 1 1 10rem;
    min-width: 0;
  }
}

@container (min-width: 64rem) {
  .toolbarFiltersFill-76c1457 .toolbarMain-76c1457 {
    flex-wrap: nowrap;
  }

  .toolbarFiltersFill-76c1457 .toolbarSearch-76c1457 {
    flex: 1 1 auto;
    min-width: 12rem;
  }

  .toolbarFiltersFill-76c1457 .toolbarFilters-76c1457 {
    flex: 0 1 auto;
    width: auto;
  }
}

.scopedError-76c1457 {
  width: 100%;
  flex: 1 1 100%;
  padding: var(--space-2) 0 0;
  background: transparent;
  border: none;
}

.caption-76c1457 {
  padding: var(--table-cell-inset-y) var(--table-inset-x);
  font-size: var(--text-md);
  font-weight: var(--font-regular);
  color: var(--color-text-main);
  text-align: left;
}

.thead-76c1457 {
  background: var(--color-button-alt-bg);
  border-bottom: 1px solid var(--color-card-border);
}

.thead-76c1457 tr {
  background: inherit;
}

/* Sticky table header: stays visible in the table scrollport */
.thSticky-76c1457 {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--color-button-alt-bg);
  background-clip: padding-box;
  box-shadow: 0 1px 0 var(--color-card-border);
}

.th-76c1457 {
  padding: var(--table-toolbar-inset-y) var(--table-inset-x);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
  border-bottom: 1px solid var(--color-card-border);
  vertical-align: bottom;
  min-width: 0;
}

.headerSort-76c1457 {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
}

.sortIcon-76c1457 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: var(--space-0-5);
  border-radius: var(--radius-sm);
  border: none;
  box-shadow: none;
  color: var(--color-nav-icon);
  background: transparent;
}

.sortIcon-76c1457:hover {
  color: var(--color-text-main);
  background: var(--color-nav-icon-hover);
}

.sortIcon-76c1457:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.tbody-76c1457 {
  /* Body container */
}

.tr-76c1457 {
  background: var(--color-card-bg);
}

.tr-76c1457 td {
  border-bottom: 1px solid var(--color-card-border);
}

.trHover-76c1457:hover {
  background: var(--color-button-alt-hover);
}

.trStriped-76c1457:nth-child(odd) {
  background: var(--color-card-bg);
}

.trStriped-76c1457:nth-child(even) {
  background: var(--color-button-alt-bg);
}

.trStriped-76c1457.trHover-76c1457:hover {
  background: var(--color-button-alt-hover);
}

.trSelected-76c1457 {
  background: var(--color-button-alt-hover);
}

.trSelected-76c1457.trHover-76c1457:hover {
  background: var(--color-button-alt-hover);
}

.td-76c1457 {
  padding: var(--table-cell-inset-y) var(--table-inset-x);
  color: var(--color-text-main);
  vertical-align: middle;
  min-width: 0;
}

.emptyCell-76c1457 {
  padding: var(--table-cell-inset-y) var(--table-inset-x);
  min-height: 3.5rem;
  /* !important: injected per-column `[data-table-id] td:nth-child(n)` align rules otherwise win. */
  text-align: center !important;
  color: var(--color-text-muted);
}

/* Keep the element selector for documentation / non-injected paths. */
td.emptyCell-76c1457 {
  text-align: center !important;
}

/* Relative wrapper around the scrollport so the loading overlay can cover it */
.scrollRelative-76c1457 {
  position: relative;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.scrollRelativeFill-76c1457 {
  flex: 1 1 0;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.scrollRelativeContent-76c1457 {
  flex: 0 1 auto;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.loadingSpacerRow-76c1457 {
  /* Spacer + in-body spinner while empty */
}

.loadingSpacerCell-76c1457 {
  padding: 0;
  border: none;
  background: transparent;
  vertical-align: middle;
  text-align: center !important;
}

/* Bottom status strip: fetched/total counts, the loading/refresh indicator, and the
   content-fetch error. Mirrors `.toolbar`'s insets/background, border-top instead of
   border-bottom so it reads as the same chrome at the opposite edge. */
.footer-76c1457 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--table-toolbar-gap-col);
  padding: var(--table-toolbar-inset-y) var(--table-inset-x);
  border-top: 1px solid var(--color-card-border);
  background: var(--color-button-alt-bg);
  min-width: 0;
  box-sizing: border-box;
}

.footerCount-76c1457 {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* Wrapper only — `render_error_channel` nests a `CardMessageView` with its own box
   styling (border, tone background, padding), same as `.scopedError`'s precedent. */
.footerError-76c1457 {
  min-width: 0;
}

.footerIndicator-76c1457 {
  display: inline-flex;
  flex-shrink: 0;
}

.trClickable-76c1457 {
  cursor: pointer;
}

/* Pointer target >= 24px (WCAG 2.5.8). */
.sortIcon-76c1457 {
  min-width: 1.5rem;
  min-height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}


.plain-d0a7caf {
  min-width: 0;
}

.actionsCell-d0a7caf {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
}

.actionsCellEnd-d0a7caf {
  justify-content: flex-end;
}

/* TableCellContent::StatusList: chips wrap inside the cell. */
.statusList-d0a7caf {
  display: inline-flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-width: 0;
}

/* TableCellContent::InaccessibleDocument: plain identity, then a muted lock (never a link). */
.inaccessibleDocument-d0a7caf {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  cursor: default;
}

.lockIcon-d0a7caf {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  color: var(--color-text-muted);
  width: 1rem;
  height: 1rem;
}


.textarea-a08efbb {
  width: 100%;
  resize: vertical;
  min-height: 5rem;
}

.textarea-a08efbb::placeholder {
  color: var(--color-text-muted);
}

.errorMessage-a08efbb {
  font-size: var(--text-sm);
  color: var(--color-error);
  margin-top: var(--space-0-5);
}


.wrap-375bd4f {
  position: relative;
  width: 100%;
  min-width: 0;
}

.trigger-375bd4f {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-1-5);
  width: 100%;
  cursor: pointer;
}

.trigger-375bd4f:hover {
  background: var(--color-bg-muted);
}

.triggerMuted-375bd4f {
  color: var(--color-text-muted);
}

.triggerRange-375bd4f {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
}

.rangeSep-375bd4f {
  flex: none;
}

.timeGrid-375bd4f {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.timeLabel-375bd4f {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  margin-bottom: var(--space-1);
  color: var(--color-text-main);
}

.timeInput-375bd4f {
  width: 100%;
  box-sizing: border-box;
  padding: var(--space-2) var(--space-2);
  font-size: var(--text-base);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-main);
  color: var(--color-text-main);
}

.saveRow-375bd4f {
  display: flex;
  justify-content: flex-end;
}

.saveBtn-375bd4f {
  padding: 0;
  border: none;
  background: none;
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  color: var(--color-link);
  cursor: pointer;
  text-decoration: underline;
}

.saveBtn-375bd4f:hover {
  color: var(--color-accent-strong);
}

.trigger-375bd4f:focus-visible,
.saveBtn-375bd4f:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}


.root-90cbd1f {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  cursor: pointer;
  user-select: none;
}

/* .input (hook for the sibling / :has selectors below) is hidden by visually_hidden srOnly. */

.track-90cbd1f {
  position: relative;
  width: 2.25rem;
  height: 1.25rem;
  background: var(--color-button-alt-bg);
  border: 1px solid var(--color-button-alt-border);
  border-radius: var(--radius-full);
  transition: background-color var(--duration-normal) ease, border-color var(--duration-normal) ease;
  box-sizing: border-box;
}

.thumb-90cbd1f {
  position: absolute;
  top: 1px;
  left: 1px;
  width: 1rem;
  height: 1rem;
  background: var(--color-toggle-off-thumb);
  border-radius: var(--radius-full);
  transition: transform var(--duration-normal) ease, background-color var(--duration-normal) ease;
}

.labelText-90cbd1f {
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  color: var(--color-text-main);
}

.trackChecked-90cbd1f {
  background: var(--color-accent);
  border-color: var(--color-accent);
}

.thumbChecked-90cbd1f {
  transform: translateX(1rem);
  background: var(--color-accent-text);
}

.input-90cbd1f:focus-visible + .track-90cbd1f {
  box-shadow: var(--focus-ring);
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.input-90cbd1f:disabled + .track-90cbd1f {
  background: var(--color-button-disabled-bg);
  border-color: var(--color-button-disabled-bg);
}

.input-90cbd1f:disabled + .track-90cbd1f .thumb-90cbd1f {
  background: var(--color-button-disabled-text);
}

.root-90cbd1f:has(.input-90cbd1f:disabled) {
  cursor: not-allowed;
  opacity: 0.85;
}

.root-90cbd1f:has(.input-90cbd1f:disabled) .labelText-90cbd1f {
  color: var(--color-button-disabled-text);
}


.root-5b4c6aa {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
  min-width: 0;
}

.reason-5b4c6aa {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  overflow-wrap: anywhere;
}


.stepList-12a226f {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.stepRow-12a226f {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.stepIcon-12a226f {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
}

.stepIconDone-12a226f {
  color: var(--color-success-text);
}

.stepIconPending-12a226f {
  color: var(--color-text-muted);
}

.stepLabel-12a226f {
  flex: 1;
}

.stepDetail-12a226f {
  margin: var(--space-1) 0 0 1.6rem;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.errorMessage-12a226f {
  margin-top: var(--space-3);
  color: var(--color-danger);
}



.matrixToggle-edf176c {
  width: max-content;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-card-border);
  /* Transparent so matrix row hover/stripe shows through when unassigned */
  background: transparent;
  border-radius: var(--radius-sm);
  padding: var(--space-1);
}

.matrixToggleAssigned-edf176c {
  background: var(--tone-success-bg);
  border-color: var(--tone-success-border);
}

.matrixToggleSaving-edf176c {
  opacity: 0.7;
}

.matrixToggleError-edf176c {
  border-color: var(--tone-danger-border);
  background: var(--tone-danger-bg);
}

.matrixLayout-edf176c {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  width: 100%;
  /* Hug content, but shrink with the ListColumn card so the matrix scrollport (not the page
     root's overflow:hidden) absorbs overflow on short / mobile viewports. */
  flex: 0 1 auto;
  min-height: 0;
}

.roleHeaderContent-edf176c {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  line-height: 1;
  max-width: 100%;
}

.roleHeaderContent-edf176c > span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.roleHeaderContent-edf176c > span:last-child {
  flex-shrink: 0;
  position: relative;
  z-index: 6;
}

/* Primary matrix scrollport: content-sized; the ListColumn card caps it at the available
   height so large matrices scroll here (both axes) on desktop and mobile. The floor keeps a
   few rows (and the thead role buttons) visible when the record strip / toolbar wrap tall.
   Kept under ~7.5rem so the floor itself does not push the scrollport past the card on short
   / mobile viewports once the record strip's own height is subtracted (measured ~143-160px of
   actual room left for the port at 375x625 with the record strip + toolbar rendered). */
.matrixTableScroll-edf176c {
  width: 100%;
  max-width: 100%;
  min-height: min(7.5rem, 25vh);
  min-height: min(7.5rem, 25dvh);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  position: relative;
}

/* Column headers: sticky within the matrix scrollport (toolbar stays outside). */
.matrixTableScroll-edf176c table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  color: var(--color-text-main);
  background: var(--color-button-alt-bg);
  background-clip: padding-box;
  box-shadow: 0 1px 0 var(--color-card-border);
}

/* Sticky top-left corner + first data column only (horizontal pin). */
.matrixTableScroll-edf176c table thead th:first-child {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 5;
  background: var(--color-button-alt-bg);
  background-clip: padding-box;
  box-shadow:
    0 1px 0 var(--color-card-border),
    1px 0 0 var(--color-card-border);
}

/* Sticky first data column (horizontal). */
.matrixTableScroll-edf176c table tbody td:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--color-card-bg);
  background-clip: padding-box;
  box-shadow: 1px 0 0 var(--color-card-border);
}

.matrixTableScroll-edf176c tbody tr.matrixTableRow-edf176c:hover td {
  background: var(--color-button-alt-hover);
}

.matrixTableScroll-edf176c tbody tr.matrixTableRow-edf176c:hover td:first-child {
  background: var(--color-button-alt-hover);
}

.matrixTableRow-edf176c {
  border-bottom: 1px solid var(--color-card-border);
}

.matrixTableRow-edf176c:last-child {
  border-bottom: none;
}

.matrixTableRow-edf176c:hover {
  background: transparent;
}

/* Document / user label + row delete: one column, trash aligned with the row label */
.matrixFirstColumnBody-edf176c {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.matrixFirstColumnMain-edf176c {
  flex: 1;
  min-width: 0;
}

.matrixFirstColumnTrash-edf176c {
  flex-shrink: 0;
  align-self: center;
}

.matrixCellControl-edf176c {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
}

.matrixCellRow-edf176c {
  display: flex;
  align-items: center;
  gap: var(--space-1-5);
  justify-content: center;
  flex-wrap: wrap;
}

.matrixCellKindLabel-edf176c {
  min-width: 0;
  max-width: 9rem;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font: inherit;
  color: inherit;
}

.matrixModalKindSelect-edf176c {
  width: 100%;
  max-width: 100%;
  padding: var(--space-1) var(--space-1-5);
  font: inherit;
  border: 1px solid var(--color-card-border);
  border-radius: 0;
  background: transparent;
  color: inherit;
}

.matrixCellIssueMessage-edf176c {
  display: block;
  text-align: left;
  font-size: var(--text-xs);
  color: var(--color-danger);
}

.emptyRolesNotice-edf176c {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  line-height: 1.4;
  color: var(--color-text-muted);
}


.scroll-c56d546 {
  max-height: min(50vh, 22rem);
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
  padding: var(--space-1) var(--space-1-5);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-md);
  background: var(--color-card-bg, transparent);
}

.ul-c56d546 {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.item-c56d546 {
  padding: var(--space-1-5) var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--color-card-border);
}

.item-c56d546:last-child {
  border-bottom: none;
  padding-bottom: var(--space-1);
}

.kind_row-c56d546 {
  font-weight: var(--font-bold);
  font-size: var(--text-base);
  line-height: 1.35;
  color: var(--color-text-main);
  margin-bottom: var(--space-1);
}

.details-c56d546 {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
}

.detail_row-c56d546 {
  font-size: var(--text-sm);
  line-height: 1.4;
  color: var(--color-text-muted);
  padding-left: 0.1rem;
}


.root-2f253ac {
  min-width: 0;
  overflow-x: auto;
  /* Interior columns hide against the tree's own width (split panes), not the viewport. */
  container-type: inline-size;
}

.table-2f253ac {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--text-sm);
  text-align: left;
  color: var(--color-text-main);
}

.th-2f253ac {
  padding: var(--table-toolbar-inset-y) var(--table-inset-x);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
  border-bottom: 1px solid var(--color-card-border);
  vertical-align: bottom;
  min-width: 0;
  box-sizing: border-box;
}

/* Secondary columns are 9rem (padding included); the name column takes the rest and never
   drops below 12rem: interior columns hide first (below), and the table's inline min-width
   (name + last column) makes `.root` scroll only when even those two do not fit. */
.thSecondary-2f253ac {
  width: 9rem;
  white-space: nowrap;
}

/* Last column: second most important, always shown, right-aligned (same convention as Table). */
.alignEnd-2f253ac {
  text-align: right;
}

.row-2f253ac {
  background: var(--color-card-bg);
  cursor: default;
}

.row-2f253ac:hover {
  background: var(--color-button-alt-hover);
}

.row-2f253ac:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: -2px;
}

.rowSelectable-2f253ac {
  cursor: pointer;
}

.rowSelected-2f253ac,
.rowSelected-2f253ac:hover {
  background: var(--color-button-alt-hover);
  box-shadow: inset 3px 0 0 var(--color-accent);
}

.rowNavigationOnly-2f253ac {
  color: var(--color-text-muted);
}

.td-2f253ac {
  padding: var(--table-cell-inset-y) var(--table-inset-x);
  border-bottom: 1px solid var(--color-card-border);
  vertical-align: middle;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.tdSecondary-2f253ac {
  white-space: nowrap;
}

/* Indentation: one step per depth level, driven by the `--tree-depth` custom property. */
.nameCell-2f253ac {
  display: flex;
  align-items: center;
  gap: var(--space-1-5);
  min-width: 0;
  padding-inline-start: calc(var(--tree-depth, 0) * 1.25rem);
}

.toggle-2f253ac {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  color: var(--color-text-muted);
  border-radius: var(--radius-sm);
  cursor: pointer;
}

.toggle-2f253ac:hover {
  background: var(--color-bg-muted);
  color: var(--color-text-main);
}

.toggleSpacer-2f253ac {
  flex: 0 0 auto;
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
}

.icon-2f253ac {
  flex: 0 0 auto;
  display: inline-flex;
  width: 1.125rem;
  height: 1.125rem;
  color: var(--color-text-muted);
}

.iconBranch-2f253ac {
  color: var(--color-link);
}

.rowNavigationOnly-2f253ac .iconBranch-2f253ac {
  color: var(--color-text-muted);
}

.label-2f253ac {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.placeholderRow-2f253ac {
  background: var(--color-card-bg);
}

.placeholderCell-2f253ac {
  padding: var(--table-cell-inset-y) var(--table-inset-x);
  border-bottom: 1px solid var(--color-card-border);
  color: var(--color-text-muted);
  font-style: italic;
}

/*
 * Responsive: interior columns (between the name and the last column) hide progressively.
 * `data-hide-at="m"` marks the column that goes while `m` interior columns are still shown;
 * it hides once the tree is narrower than name (12rem) + last (9rem) + m × 9rem, so the
 * name column never shrinks below 12rem. Same zeroing technique as `table.module.css`:
 * under `table-layout: fixed`, `display: none` / `visibility: collapse` leave a gap.
 */
@container (max-width: 30rem) {
  .table-2f253ac :is(th, td)[data-hide-at="1"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    pointer-events: none;
  }
}

@container (max-width: 39rem) {
  .table-2f253ac :is(th, td)[data-hide-at="2"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    pointer-events: none;
  }
}

@container (max-width: 48rem) {
  .table-2f253ac :is(th, td)[data-hide-at="3"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    pointer-events: none;
  }
}

@container (max-width: 57rem) {
  .table-2f253ac :is(th, td)[data-hide-at="4"] {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    pointer-events: none;
  }
}


.list-608f9db {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

.listAlignEnd-608f9db {
  justify-content: flex-end;
}

.listAlignStart-608f9db {
  justify-content: flex-start;
  margin-top: var(--space-3);
}


/* One line: mark, summary text and "run again"; the progress bar takes the full width. */
.root-dba39f9 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.progress-dba39f9 {
  flex: 1 1 12rem;
  min-width: 0;
}

.summary-dba39f9 {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.okMark-dba39f9 {
  display: inline-flex;
  align-items: center;
  color: var(--color-success-text);
  line-height: 1;
}

.statusIcon-dba39f9 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  font-size: var(--text-lg);
  flex-shrink: 0;
}


.verdictLine-6b811c8 {
  margin: 0 0 var(--space-3) 0;
  font-size: var(--text-base);
  font-weight: var(--font-bold);
  color: var(--color-text-main);
}

.renderingNote-6b811c8 {
  margin: calc(-1 * var(--space-2)) 0 var(--space-3) 0;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.repoSection-6b811c8 {
  margin-top: var(--space-3);
}

.repoSectionTitle-6b811c8 {
  margin: 0 0 var(--space-2) 0;
  font-weight: var(--font-bold);
}

.repoMatch-6b811c8 {
  min-width: 0;
}

.embeddedActionCell-6b811c8 {
  display: flex;
  justify-content: flex-end;
}

code.code-6b811c8 {
  font-size: var(--text-sm);
  word-break: break-all;
}

.embeddedPanel-6b811c8 {
  min-width: 0;
}


/* Content-sized: do not use flex: 1 1 0 — in a list column card with height auto,
   that basis-0 flex child can resolve to 0px and hide the summary + table. */
.summaryPanel-5a35cb4 {
  flex-shrink: 0;
  margin-bottom: var(--space-2);
}

/* “Not verified” + verify action on one line. */
.summaryWithAction-5a35cb4 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

/* Until PDF batch: reserve space; no “not verified” copy. */
.summaryPlaceholder-5a35cb4 {
  display: block;
  min-height: 1.5rem;
  width: 0.5rem;
}

.verifyOkMark-5a35cb4 {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  color: var(--color-success-text);
  line-height: 1;
}

/* Summary grid: larger check / X, aligned with label column. */
.summaryStatusIcon-5a35cb4 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  font-size: var(--text-lg);
  flex-shrink: 0;
}

/* Verify actions: left-align with panel title (not the title row’s end-aligned slot). */
.panelActionsUnderTitle-5a35cb4 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

/* Wraps the split + failure modals without affecting the split layout. */
.pageWithModals-5a35cb4 {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
}

/* Content-sized: do not use flex: 1 1 0 — same collapse risk as `.summaryPanel`. */
.partialErrorHost-5a35cb4 {
  flex-shrink: 0;
  margin-bottom: var(--space-2);
}


.root-7a58621 {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

.explanation-7a58621 {
  font-size: var(--text-sm);
  line-height: 1.4;
  color: var(--color-text-main);
  margin: 0 0 var(--space-3);
  flex-shrink: 0;
}

.trust-7a58621 {
  display: flex;
  flex-direction: column;
  gap: var(--space-1-5);
  margin: 0 0 var(--space-4);
  padding: var(--space-3) 0 0;
  border-top: 1px solid var(--color-card-border);
  flex-shrink: 0;
}

.trust_links-7a58621 {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.4;
}

.trust_links-7a58621 a {
  color: var(--color-link);
}

.fingerprint-7a58621 {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.35;
  word-break: break-all;
}

.fingerprint-7a58621 code {
  font-size: var(--text-xs);
}

.trust_label-7a58621 {
  font-weight: var(--font-regular);
  font-size: var(--text-sm);
  color: var(--color-text-main);
  margin: 0;
}

.trust_hint-7a58621 {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.35;
  color: var(--color-text-main);
}

.drop_root-7a58621 {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 16rem;
}

.file_line-7a58621 {
  font-size: var(--text-sm);
  word-break: break-all;
  margin: 0;
}

.choose_button-7a58621 {
  display: none;
}

@media (max-width: 40rem), (pointer: coarse) {
  .choose_button-7a58621 {
    display: flex;
    justify-content: center;
  }
}


/* Visually hidden but available to assistive tech / E2E send_keys. */
.srOnly-e916876 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}


/* No padding: MainArea provides --page-padding so side spacing matches gap between cards */
.root-8fd4d39 {
  display: flex;
  gap: var(--layout-gap);
  padding: 0;
  min-width: 0;
  min-height: 0;
  flex: 1 1 0;
  align-self: stretch;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* No detail selected: list 60%, placeholder 40% */
.left-8fd4d39 {
  flex: 0 1 60%;
  min-width: 0;
  min-height: 0;
  overflow: visible;
  display: flex;
  flex-direction: column;
  position: relative;
}

.right-8fd4d39 {
  flex: 1 1 40%;
  min-width: 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  position: relative;
}

/* Explicit wide-state panel visibility helps Safari re-evaluate after resize. */
.root-8fd4d39[data-detail-selected="false"] .left-8fd4d39 {
  display: flex;
  flex: 0 1 60%;
}

.root-8fd4d39[data-detail-selected="false"] .right-8fd4d39 {
  display: flex;
  flex: 1 1 40%;
}

/* Detail selected: list 40%, detail 60% */
.root-8fd4d39[data-detail-selected="true"] .left-8fd4d39 {
  display: flex;
  flex: 0 1 40%;
}

.root-8fd4d39[data-detail-selected="true"] .right-8fd4d39 {
  display: flex;
  flex: 1 1 60%;
}

/* Narrow: show only one panel */
@media (max-width: 63.99rem) {
  .root-8fd4d39 {
    flex-direction: column;
  }

  /* No detail selected: show only list, hide placeholder */
  .root-8fd4d39[data-detail-selected="false"] .right-8fd4d39 {
    display: none;
  }

  .root-8fd4d39[data-detail-selected="false"] .left-8fd4d39 {
    display: flex;
    flex: 1 1 auto;
  }

  /* Detail selected: show only detail, hide list */
  .root-8fd4d39[data-detail-selected="true"] .left-8fd4d39 {
    display: none;
  }

  .root-8fd4d39[data-detail-selected="true"] .right-8fd4d39 {
    display: flex;
    flex: 1 1 auto;
    min-height: 8rem;
  }
}
.userContextRefreshError-3035fa3 {
  width: 100%;
  box-sizing: border-box;
  padding: var(--space-2) var(--space-4);
  border-bottom: 1px solid var(--color-card-border);
}

.sessionExpiredCta-3035fa3 {
  width: 100%;
  box-sizing: border-box;
  max-width: 28rem;
  margin: var(--space-8) auto;
}

/* Keep a single persistent Outlet so sibling route owners dispose on navigate.
   Display-none when signed-out; flex:1 1 0 + min-height:0 preserves Fill/ListColumn heights. */
.outletShown-3035fa3 {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
}

.outletHidden-3035fa3 {
  display: none;
}


.panelDescription-35ef034 {
  margin: 0;
}


.delete_department_button_wrap-1e6f5ff {
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
}


.detailSection-c85284a {
  margin-top: var(--space-2);
}


.accessDeniedLead-fc68e46 {
    margin: 0;
    color: var(--color-text-muted);
    line-height: 1.5;
}

.sectionTitle-fc68e46 {
    font-weight: var(--font-bold);
    margin: 0 0 var(--space-2);
}

.areasList-fc68e46 {
    margin: 0;
    padding-left: var(--space-5);
}

.areaItem-fc68e46 {
    margin-bottom: var(--space-1-5);
}

.areaMeta-fc68e46 {
    color: var(--color-text-muted);
}

.permissionNote-fc68e46 {
    margin: 0;
}

.noContacts-fc68e46 {
    margin: 0;
    color: var(--color-text-muted);
}


.delete_area_button_wrap-ba605a5 {
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
}


.inline_message-d8d932f {
  width: fit-content;
  max-width: 100%;
  flex: 0 0 auto;
  justify-content: flex-start;
  align-items: flex-start;
}

.warning_actions-d8d932f {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  margin-top: var(--space-2);
}

.docTitleInline-d8d932f {
  font-size: var(--text-lg);
  font-weight: var(--font-bold);
  line-height: 1.3;
  color: var(--color-text-main);
}

.docRevisionInline-d8d932f {
  font-size: var(--text-sm);
  font-weight: var(--font-regular);
  color: var(--color-text-muted);
}

.cardActions-d8d932f {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

/* titleActions adds margin-left between adjacent buttons; gap already spaces this row */
.cardActions-d8d932f :where(button, a, [role="button"]) {
  margin-left: 0;
}

.readOnlyNotice-d8d932f {
  width: fit-content;
  max-width: 100%;
  margin: 0;
  flex: 0 0 auto;
  padding: var(--space-1-5) var(--space-3);
  justify-content: center;
  text-align: center;
}


.blockers-9fb4c62 {
  margin: 0;
  padding-left: 1.15rem;
}

.blockers-9fb4c62 li + li {
  margin-top: var(--space-1);
}


.body-2410f08 {
  min-width: 0;
}

.paragraph-2410f08 {
  margin: 0;
  line-height: 1.5;
  color: var(--color-text-main);
}


.fillSlot-d26443e {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* Transition / Suspense hosts and card shells must consume the fill budget. */
.fillSlot-d26443e > * {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.cardShell-d26443e {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.cardShell-d26443e > * {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}


.toggleRow-61ff89e {
  margin-bottom: var(--space-4);
}

.accessEventsWrap-61ff89e {
  padding: var(--space-3) var(--space-2) var(--space-2);
}


/* Name column hugs labels; actions (kind + remove) fill the rest so the kind
   dropdown can grow. Overrides shared table last-column `max-content` hug. */
.docAreaLinksTable-f545f0c table th:first-child,
.docAreaLinksTable-f545f0c table td:first-child {
  width: max-content;
}

.docAreaLinksTable-f545f0c table th:last-child,
.docAreaLinksTable-f545f0c table td:last-child {
  width: auto;
}

.docAreaActionsCell-f545f0c {
  display: inline-flex;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.docAreaKindCell-f545f0c {
  flex: 1 1 auto;
  min-width: 0;
  margin-right: var(--space-2);
}


.detail_body-26ca590 {
  color: var(--color-text-main);
  white-space: pre-wrap;
  line-height: 1.45;
}

.rowStateTable-26ca590 {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.saveStatus-26ca590 {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: 1.3;
  white-space: nowrap;
}

.centeredPanelAction-26ca590 {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: var(--space-1);
}


.panelScroll-60f5459 {
  min-height: 0;
}


.registration_hint-2d23ebc {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  line-height: 1.35;
  color: var(--color-text-main);
}

.row_actions-2d23ebc {
  /* Fill the cell, then wrap at its used width. `inline-flex` + `nowrap` overflowed
     the last column (sized from the "Actions" header under table-layout:fixed) and
     `overflow-x: clip` hid Rename/Delete. Firefox `flex-wrap: wrap` in a table cell
     otherwise uses min-content (one column) unless the flex box has a definite width. */
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1-5);
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.row_actions-2d23ebc > * {
  flex: 0 0 auto;
}

.signingCredentialsTable-2d23ebc table th:last-child,
.signingCredentialsTable-2d23ebc table td:last-child {
  width: auto;
  min-width: 12rem;
  overflow: visible;
}


.panelFields-931f559 {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.scheduleRow-931f559 {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--space-4) var(--space-5);
  width: 100%;
  min-width: 0;
}

.scheduleDateCol-931f559 {
  flex: 1 1 12rem;
  min-width: 0;
}

.scheduleTimeCol-931f559 {
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 7.5rem;
}

.timeInput-931f559 {
  box-sizing: border-box;
  width: 100%;
  max-width: 10rem;
  padding: var(--space-2) var(--space-3);
  font: inherit;
  line-height: 1.25;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-sm, 4px);
  background: var(--color-card-bg);
  color: var(--color-text-main);
}

.optionsTogglesRow-931f559 {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--space-5) var(--space-8);
}

.fieldLabel-931f559 {
  font-weight: var(--font-bold);
}


.subtypeToggleRow-50f9331 {
  display: block;
  padding: var(--space-2);
}

.subtypeActions-50f9331 {
  padding: var(--space-2) 0;
}


.tableCellTruncate-a42d31c {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jsonBlock-a42d31c {
    margin: 0;
    padding: var(--space-3);
    overflow: auto;
    max-height: 18rem;
    line-height: 1.4;
    color: var(--color-text-main);
    background: var(--color-bg-main);
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-md);
    white-space: pre-wrap;
    word-break: break-word;
}


.detailBody-46bc504 {
  min-width: 0;
}

.syncStatus-46bc504 {
  opacity: 0.9;
}

.syncConfig-46bc504 {
  margin: 0;
  padding: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 0.8125rem/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
  opacity: 0.9;
}



.controlRow-8c96339 {
  max-width: 20rem;
}


.overallSummary-8a5ab5a {
  margin: 0;
  line-height: 1.45;
  color: var(--color-text-muted);
}

.cardSummary-8a5ab5a {
  margin: 0 0 var(--space-3);
  line-height: 1.45;
}

.lastChecked-8a5ab5a {
  margin: auto 0 0;
  white-space: nowrap;
  color: var(--color-text-muted);
}

.remediationLink-8a5ab5a {
  color: var(--color-link);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}


.fillSlot-3293617 {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* Transition / Suspense hosts and card shells must consume the fill budget. */
.fillSlot-3293617 > * {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.cardShell-3293617 {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.cardShell-3293617 > * {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}


.blockers-884d85e {
  margin: 0;
  padding-left: 1.15rem;
}

.blockers-884d85e li + li {
  margin-top: var(--space-1);
}


.communicationPrefsCardWrap-a23b79b {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin-top: 0;
}

.signingKeysCardWrap-a23b79b {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin-top: 0;
}


/* Matches `.page` gap in user_settings.module.css between stacked cards. */

.togglePanelLabel-30e2765 {
  font-weight: var(--font-bold);
  text-align: center;
  color: var(--color-text-main);
}


.panelBody-76e7bdb {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  flex: 1;
}
