/* ABM utility primitives.
   Keep this file small: only generic spacing, alignment and native progress
   helpers used to remove static inline styles from templates. */

.abm-u-m-0 { margin: 0; }
.abm-u-mt-1 { margin-top: 8px; }
.abm-u-mt-2 { margin-top: 10px; }
.abm-u-mt-3 { margin-top: 12px; }
.abm-u-mt-4 { margin-top: 14px; }
.abm-u-mt-5 { margin-top: 16px; }
.abm-u-mt-6 { margin-top: 18px; }
.abm-u-mb-2 { margin-bottom: 10px; }
.abm-u-mb-4 { margin-bottom: 14px; }
.abm-u-mb-5 { margin-bottom: 16px; }
.abm-u-mb-6 { margin-bottom: 18px; }

.abm-u-between { justify-content: space-between; }
.abm-u-grid-full { grid-column: 1 / -1; }
.abm-u-min-0 { min-width: 0; }
.abm-u-flex-1-min {
  flex: 1;
  min-width: 0;
}
.abm-u-flex-end {
  display: flex;
  justify-content: flex-end;
}
.abm-u-inline { display: inline; }
.abm-u-self-end { align-self: end; }
.abm-u-text-end { text-align: right; }
.abm-u-text-sm { font-size: .9rem; }
.abm-u-text-white { color: #fff; }
.abm-u-muted-disabled { opacity: .55; }
.abm-u-danger-soft {
  border-color: rgba(239, 68, 68, .22);
  color: #991b1b;
}

.abm-u-grid-gap-3 {
  display: grid;
  gap: 12px;
}

.abm-u-cover-fill {
  height: 100%;
  min-height: 220px;
}

.abm-u-title-sm { font-size: 1.15rem; }

.abm-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
}

.abm-toolbar-left,
.abm-toolbar-right,
.abm-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  min-width: 0;
}

.abm-toolbar-left {
  flex: 1 1 auto;
}

.abm-toolbar-right,
.abm-toolbar-actions {
  flex: 0 0 auto;
  justify-content: flex-end;
}

.abm-toolbar-title {
  margin: 0;
  color: var(--abm-color-text);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.2;
}

.abm-toolbar-subtitle {
  margin: 0.2rem 0 0;
  color: var(--abm-color-muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.abm-mobile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.abm-u-note-constrained {
  margin: 0;
  max-width: 680px;
}

.abm-u-section-mini-title {
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 900;
}

.abm-u-admin-muted {
  color: var(--abm-admin-muted);
  font-size: .86rem;
}

.abm-u-admin-muted-light {
  color: rgba(255, 255, 255, .62);
  font-size: .86rem;
  margin-top: 3px;
}

.abm-u-admin-main-grid {
  display: grid;
  gap: 1rem;
}

.abm-u-admin-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: center;
}

.abm-u-admin-single-column { grid-template-columns: 1fr; }

.abm-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.abm-focus-scope :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid rgba(245, 179, 1, .48);
  outline-offset: 3px;
}

.abm-progress-native {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: inherit;
  overflow: hidden;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
}

.abm-progress-native::-webkit-progress-bar {
  border-radius: inherit;
  background: transparent;
}

.abm-progress-native::-webkit-progress-value {
  border-radius: inherit;
  background: linear-gradient(90deg, var(--abm-accent, #f5b301), #ffd666);
}

.abm-progress-native::-moz-progress-bar {
  border-radius: inherit;
  background: linear-gradient(90deg, var(--abm-accent, #f5b301), #ffd666);
}

.abm-favorite-icon {
  color: rgba(0, 0, 0, .60);
}

.abm-favorite-icon.is-active {
  color: #f59e0b;
}

@media (max-width: 560px) {
  .abm-toolbar,
  .abm-toolbar-left,
  .abm-toolbar-right,
  .abm-toolbar-actions,
  .abm-mobile-actions {
    align-items: stretch;
    width: 100%;
  }

  .abm-toolbar-right,
  .abm-toolbar-actions {
    justify-content: stretch;
  }

  .abm-toolbar .abm-btn,
  .abm-mobile-actions .abm-btn {
    width: 100%;
  }
}
