/* Shared page layout, loaded after the SmartBots Bootstrap bundle.
 * Reuse one #pageBody.sb-page-content container; insert legacy inner content only.
 * Do not carry over old #pageBody width, float, margin or padding rules.
 */
.min-w-0 {
  min-width: 0;
}

.sb-page-content {
  padding: 1.5rem 2.625rem 0;
}

/* Inherit the shell's viewport-minus-header minimum, including its mobile block layout. */
.sb-shell > .sb-page-content {
  min-height: inherit;
}

.sb-page-header {
  margin-bottom: 1.75rem;
}

.sb-page-header p {
  font-size: 0.8125rem;
}

.sb-kebab {
  width: 1.875rem;
  min-height: 1.75rem;
  height: 1.75rem;
  color: var(--sb-muted);
  border-radius: 0.4375rem;
  background: transparent;
}

.sb-kebab:hover,
.sb-kebab:focus-visible {
  color: var(--sb-ink);
  background: var(--sb-surface-soft);
  transform: none;
}

.sb-empty-state {
  border-style: dashed;
}

@media (max-width: 1199.98px) {
  .sb-page-content {
    padding-inline: 1.5rem;
  }
}
@media (max-width: 575.98px) {
  .sb-page-content {
    padding-inline: 0.9375rem;
  }
}
/* Default layout fields. Validation and disabled states remain Bootstrap-owned. */
.sb-ui {
  --sb-input-radius: .5rem;
  --sb-input-focus-color: #7db3f5;
  --sb-input-focus-ring: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .12);
}

.sb-ui .form-control:not(:disabled):not([readonly]) {
  background-color: var(--bs-white);
}

.sb-ui .form-control {
  border-radius: var(--sb-input-radius);
}

/* Joined text/icon groups: one border and one focus ring for the whole control.
 * Groups with buttons or validation feedback keep Bootstrap's original layout.
 */
.sb-ui .input-group:has(> .input-group-text):not(:has(> .btn)):not(.has-validation) {
  border: var(--bs-border-width) solid var(--bs-border-color);
  border-radius: var(--sb-input-radius);
  background-color: var(--bs-white);
  box-shadow: var(--bs-box-shadow-sm);
}

.sb-ui .input-group:has(> .input-group-text):not(:has(> .btn)):not(.has-validation) > :is(.input-group-text, .form-control) {
  border: 0;
  border-radius: var(--sb-input-radius);
  margin-left: 0;
  background-color: transparent;
}

.sb-ui .input-group:has(> .input-group-text):not(:has(> .btn)):not(.has-validation):focus-within {
  border-color: var(--sb-input-focus-color);
  box-shadow: var(--sb-input-focus-ring);
}

.sb-ui .input-group:has(> .input-group-text):not(:has(> .btn)):not(.has-validation) > .form-control:focus {
  box-shadow: none;
}

/* Preserve disabled backgrounds inside joined groups too. */
.sb-ui .input-group:has(> .input-group-text):not(:has(> .btn)):not(.has-validation) > .form-control:disabled {
  background-color: var(--bs-secondary-bg);
}
.sb-shell-skeleton {
  position: relative;
  overflow: hidden;
}
.sb-shell-skeleton__search, .sb-shell-skeleton__label, .sb-shell-skeleton__icon, .sb-shell-skeleton__promo {
  display: block;
  background: var(--bs-gray-200, #e9ecef);
}
.sb-shell-skeleton__search {
  height: 2.5rem;
}
.sb-shell-skeleton__label {
  height: 0.75rem;
  border-radius: 2px;
}
.sb-shell-skeleton__icon {
  width: 1.125rem;
  height: 1.125rem;
}
.sb-shell-skeleton__promo {
  height: 7rem;
}
.sb-shell-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, 0.65) 50%, transparent 80%);
  transform: translateX(-100%);
  animation: sb-shell-shimmer 2.8s ease-in-out infinite;
  pointer-events: none;
}

.sb-shell-placeholder {
  position: relative;
}
.sb-shell-placeholder__error {
  display: none;
}
.sb-shell-placeholder[data-state=error] .sb-shell-placeholder__loading {
  display: none;
}
.sb-shell-placeholder[data-state=error] .sb-shell-placeholder__error {
  display: block;
}
.sb-shell-placeholder[data-state=loading] .sb-shell-placeholder__error {
  display: block;
  position: absolute;
  inset: 1rem;
  visibility: hidden;
  animation: sb-shell-reveal 0s 15s forwards;
}
.sb-shell-placeholder[data-state=loading] .sb-shell-placeholder__loading {
  animation: sb-shell-conceal 0s 15s forwards;
}

@keyframes sb-shell-shimmer {
  to {
    transform: translateX(100%);
  }
}
@keyframes sb-shell-reveal {
  to {
    visibility: visible;
  }
}
@keyframes sb-shell-conceal {
  to {
    visibility: hidden;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sb-shell-skeleton::after {
    animation: none;
    display: none;
  }
}