/*
 * Action containers canonical layer.
 *
 * This file is intentionally loaded after feature CSS in _Layout so shared
 * action containers keep the same layout across Admin, Clients and Partners.
 */

.workspace-action-bar,
.workspace-panel-header-buttons,
.workspace-panel-actions,
.workspace-form-actions,
.form-actions-inline-group,
.form-actions.integration-actions,
.portal-modal-footer.btn-row,
.workspace-panel-footer,
.workspace-panel-footer.btn-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  row-gap: 0.75rem;
}

.workspace-topbar-actions > form {
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.workspace-topbar-actions > .export-dropdown {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  min-width: 0;
  max-width: 100%;
}

.workspace-topbar-actions > form > .form-summary:empty {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.workspace-topbar-actions > form > .btn-canonical,
.workspace-topbar-actions > .btn-canonical,
.workspace-topbar-actions > .export-dropdown > .btn-canonical {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .workspace-topbar-actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
    margin-left: 0;
  }

  .workspace-topbar-actions > form,
  .workspace-topbar-actions > .btn-canonical,
  .workspace-topbar-actions > form > .btn-canonical,
  .workspace-topbar-actions > .export-dropdown,
  .workspace-topbar-actions > .export-dropdown > .btn-canonical {
    width: 100%;
    max-width: 100%;
  }

  .workspace-topbar-actions > .export-dropdown {
    align-items: stretch;
    flex-direction: column;
  }

  .workspace-topbar-actions .export-dropdown > .btn-canonical:first-child {
    margin-top: 1.5rem;
  }
}

/* Desktop: botões de ação em linha única sem quebra.
   O flex-wrap:wrap acima é mantido para mobile (< 640px).
   Em desktop forçamos nowrap + shrink para que os botões comprimam
   em vez de quebrar para uma segunda linha. */
@media (min-width: 640px) {
  .workspace-action-bar,
  .workspace-panel-header-buttons,
  .workspace-panel-actions,
  .workspace-form-actions,
  .form-actions-inline-group,
  .form-actions.integration-actions {
    flex-wrap: nowrap;
  }

  .workspace-topbar-actions {
    flex-wrap: nowrap;
  }

  .workspace-topbar-actions:has(> .export-dropdown) {
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: 100%;
  }

  .workspace-action-bar > .btn-canonical,
  .workspace-action-bar > form > .btn-canonical,
  .workspace-panel-header-buttons > .btn-canonical,
  .workspace-panel-actions > .btn-canonical,
  .workspace-form-actions > .btn-canonical,
  .form-actions-inline-group > .btn-canonical {
    flex-shrink: 1;
    min-width: 0;
    white-space: nowrap;
  }
}

.workspace-panel-header-actions {
  align-items: flex-start;
}

.workspace-panel-header-actions > :first-child {
  flex: 1 1 18rem;
  min-width: 0;
}

.workspace-panel-header-buttons {
  margin-left: auto;
}

.auth-form-grid > .workspace-panel-footer,
.auth-form-grid > fieldset > .workspace-panel-footer {
  grid-column: 1 / -1;
}

.workspace-action-bar > form,
.workspace-panel-header-buttons > form,
.workspace-panel-actions > form,
.workspace-form-actions > form,
.form-actions-inline-group > form,
.form-actions.integration-actions > form,
.portal-modal-footer.btn-row > form,
.workspace-panel-footer > form,
.workspace-panel-footer.btn-row > form {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  row-gap: 0.75rem;
  margin: 0;
}

.workspace-action-bar > *,
.workspace-panel-header-buttons > *,
.workspace-panel-actions > *,
.workspace-form-actions > *,
.form-actions-inline-group > *,
.form-actions.integration-actions > *,
.portal-modal-footer.btn-row > *,
.workspace-panel-footer > *,
.workspace-panel-footer.btn-row > * {
  flex: 0 0 auto;
}

.workspace-action-bar .btn-canonical-secondary,
.workspace-action-bar .btn-canonical-ghost,
.workspace-panel-header-buttons .btn-canonical-secondary,
.workspace-panel-header-buttons .btn-canonical-ghost,
.workspace-panel-actions .btn-canonical-secondary,
.workspace-panel-actions .btn-canonical-ghost,
.workspace-form-actions .btn-canonical-secondary,
.workspace-form-actions .btn-canonical-ghost,
.form-actions-inline-group .btn-canonical-secondary,
.form-actions-inline-group .btn-canonical-ghost,
.form-actions.integration-actions .btn-canonical-secondary,
.form-actions.integration-actions .btn-canonical-ghost,
.portal-modal-footer.btn-row .btn-canonical-secondary,
.portal-modal-footer.btn-row .btn-canonical-ghost,
.workspace-panel-footer .btn-canonical-secondary,
.workspace-panel-footer .btn-canonical-ghost,
.workspace-panel-footer.btn-row .btn-canonical-secondary,
.workspace-panel-footer.btn-row .btn-canonical-ghost {
  order: 10;
}

.workspace-action-bar .btn-canonical-primary,
.workspace-action-bar .btn-canonical-success,
.workspace-action-bar .btn-canonical-warning,
.workspace-action-bar .btn-canonical-danger,
.workspace-panel-header-buttons .btn-canonical-primary,
.workspace-panel-header-buttons .btn-canonical-success,
.workspace-panel-header-buttons .btn-canonical-warning,
.workspace-panel-header-buttons .btn-canonical-danger,
.workspace-panel-actions .btn-canonical-primary,
.workspace-panel-actions .btn-canonical-success,
.workspace-panel-actions .btn-canonical-warning,
.workspace-panel-actions .btn-canonical-danger,
.workspace-form-actions .btn-canonical-primary,
.workspace-form-actions .btn-canonical-success,
.workspace-form-actions .btn-canonical-warning,
.workspace-form-actions .btn-canonical-danger,
.form-actions-inline-group .btn-canonical-primary,
.form-actions-inline-group .btn-canonical-success,
.form-actions-inline-group .btn-canonical-warning,
.form-actions-inline-group .btn-canonical-danger,
.form-actions.integration-actions .btn-canonical-primary,
.form-actions.integration-actions .btn-canonical-success,
.form-actions.integration-actions .btn-canonical-warning,
.form-actions.integration-actions .btn-canonical-danger,
.portal-modal-footer.btn-row .btn-canonical-primary,
.portal-modal-footer.btn-row .btn-canonical-success,
.portal-modal-footer.btn-row .btn-canonical-warning,
.portal-modal-footer.btn-row .btn-canonical-danger,
.workspace-panel-footer .btn-canonical-primary,
.workspace-panel-footer .btn-canonical-success,
.workspace-panel-footer .btn-canonical-warning,
.workspace-panel-footer .btn-canonical-danger,
.workspace-panel-footer.btn-row .btn-canonical-primary,
.workspace-panel-footer.btn-row .btn-canonical-success,
.workspace-panel-footer.btn-row .btn-canonical-warning,
.workspace-panel-footer.btn-row .btn-canonical-danger {
  order: 20;
}

:is(.workspace-action-bar, .workspace-panel-header-buttons, .workspace-panel-actions, .workspace-form-actions, .form-actions-inline-group, .form-actions.integration-actions, .portal-modal-footer.btn-row, .workspace-panel-footer, .workspace-panel-footer.btn-row) > form:has(.btn-canonical-secondary, .btn-canonical-ghost) {
  order: 10;
}

:is(.workspace-action-bar, .workspace-panel-header-buttons, .workspace-panel-actions, .workspace-form-actions, .form-actions-inline-group, .form-actions.integration-actions, .portal-modal-footer.btn-row, .workspace-panel-footer, .workspace-panel-footer.btn-row) > form:has(.btn-canonical-primary, .btn-canonical-success, .btn-canonical-warning, .btn-canonical-danger) {
  order: 20;
}

.workspace-panel-actions > [role="alert"],
.workspace-panel-actions > .validation-summary,
.workspace-panel-actions > .validation-summary-errors,
.workspace-panel-actions > .workspace-form-hint {
  flex: 1 1 100%;
  order: 0;
}

.workspace-panel-footer > [role="alert"],
.workspace-panel-footer > .validation-summary,
.workspace-panel-footer > .validation-summary-errors,
.workspace-panel-footer > .workspace-form-hint,
.workspace-panel-footer > .registration-readonly-alert {
  flex: 1 1 100%;
  order: 0;
}

.workspace-panel-footer-contained {
  margin-top: 1.25rem;
  border-top: 1px solid var(--color-surface-200, #e2e8f0);
  background: var(--color-surface-subtle, #f8fafc);
  padding: 1rem 1.25rem;
}
.form-actions.integration-actions {
  grid-column: 1 / -1;
  padding-top: 1rem;
  border-top: 1px solid var(--color-surface-200, #e2e8f0);
}

.form-actions.integration-actions > .btn-canonical,
.form-actions.integration-actions > a.btn-canonical {
  width: auto;
  min-width: var(--btn-min-width-md, 10.5rem);
  flex: 0 0 auto;
}

.form-actions.integration-actions > .export-status {
  flex: 1 1 100%;
  margin: 0;
  text-align: right;
  order: 30;
}

.workspace-action-bar-start {
  justify-content: flex-start;
}

.form-actions-inline-group {
  grid-column: 1 / -1;
  width: 100%;
  padding-top: 0.5rem;
}

.form-actions-inline-group > .form-actions-inline-secondary {
  order: 10;
  flex: 1 1 0;
  min-width: 0;
}

.form-actions-inline-group > .form-actions-inline-primary {
  order: 20;
  flex: 3 1 0;
  min-width: 0;
}

.form-actions-inline-group .btn-canonical {
  justify-content: center;
}

/*
 * workspace-page-actions — barra de ações da página, abaixo do cabeçalho
 * e acima dos painéis de conteúdo. Agrupa todos os botões de ação
 * primária da página num único lugar para melhor organização.
 */
.workspace-page-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  row-gap: 0.75rem;
  padding: 0.875rem 1.25rem;
  border-radius: 0.5rem;
  border: 1px solid var(--color-surface-200, #e2e8f0);
  background-color: rgb(255 255 255 / 1);
  box-shadow: none;
}

.workspace-page-actions > * {
  flex: 0 0 auto;
}

.workspace-page-actions > form {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  row-gap: 0.75rem;
  margin: 0;
}

.workspace-page-actions > form > * {
  flex: 0 0 auto;
}

.workspace-page-actions .btn-canonical-secondary,
.workspace-page-actions .btn-canonical-ghost {
  order: 10;
}

.workspace-page-actions .btn-canonical-primary,
.workspace-page-actions .btn-canonical-success,
.workspace-page-actions .btn-canonical-warning,
.workspace-page-actions .btn-canonical-danger {
  order: 20;
}

.workspace-page-actions-start {
  justify-content: flex-start;
}
