/* Neutral button system + icon spacing (admin + public) */

:root {
  --btn-neutral-bg: #ffffff;
  --btn-neutral-bg-hover: #f4f6f8;
  --btn-neutral-bg-active: #eceff3;
  --btn-neutral-border: rgba(11, 18, 32, 0.22);
  --btn-neutral-text: #1f2937;
  --btn-neutral-shadow: 0 1px 2px rgba(11, 18, 32, 0.06);
  --bt-badge-radius: 999px;
  --bt-badge-font-size: 0.74rem;
  --bt-badge-border: rgba(100, 116, 139, 0.26);
  --bt-badge-muted-bg: rgba(100, 116, 139, 0.12);
  --bt-badge-muted-text: #334155;
  --bt-badge-primary-bg: rgba(255, 138, 0, 0.14);
  --bt-badge-primary-border: rgba(255, 138, 0, 0.34);
  --bt-badge-primary-text: #9a4f00;
  --bt-badge-success-bg: rgba(22, 163, 74, 0.13);
  --bt-badge-success-border: rgba(22, 163, 74, 0.3);
  --bt-badge-success-text: #166534;
  --bt-badge-warning-bg: rgba(245, 158, 11, 0.16);
  --bt-badge-warning-border: rgba(245, 158, 11, 0.34);
  --bt-badge-warning-text: #92400e;
  --bt-badge-danger-bg: rgba(220, 38, 38, 0.12);
  --bt-badge-danger-border: rgba(220, 38, 38, 0.3);
  --bt-badge-danger-text: #991b1b;
  --bt-badge-info-bg: rgba(37, 99, 235, 0.12);
  --bt-badge-info-border: rgba(37, 99, 235, 0.3);
  --bt-badge-info-text: #1e40af;
}

[data-bs-theme="dark"] {
  --btn-neutral-bg: #162133;
  --btn-neutral-bg-hover: #1c2a40;
  --btn-neutral-bg-active: #22324a;
  --btn-neutral-border: rgba(148, 163, 184, 0.38);
  --btn-neutral-text: #e5e7eb;
  --btn-neutral-shadow: 0 1px 2px rgba(2, 6, 23, 0.45);
  --bt-badge-border: rgba(148, 163, 184, 0.3);
  --bt-badge-muted-bg: rgba(148, 163, 184, 0.14);
  --bt-badge-muted-text: #d0d9e8;
  --bt-badge-primary-bg: rgba(255, 181, 74, 0.16);
  --bt-badge-primary-border: rgba(255, 181, 74, 0.38);
  --bt-badge-primary-text: #ffd49a;
  --bt-badge-success-bg: rgba(52, 211, 153, 0.14);
  --bt-badge-success-border: rgba(52, 211, 153, 0.34);
  --bt-badge-success-text: #bbf7d0;
  --bt-badge-warning-bg: rgba(245, 158, 11, 0.16);
  --bt-badge-warning-border: rgba(245, 158, 11, 0.38);
  --bt-badge-warning-text: #fde68a;
  --bt-badge-danger-bg: rgba(248, 113, 113, 0.14);
  --bt-badge-danger-border: rgba(248, 113, 113, 0.34);
  --bt-badge-danger-text: #fecaca;
  --bt-badge-info-bg: rgba(96, 165, 250, 0.15);
  --bt-badge-info-border: rgba(96, 165, 250, 0.36);
  --bt-badge-info-text: #bfdbfe;
}

.btn {
  border-radius: 0.65rem;
  font-weight: 600;
  gap: 0.4rem;
}

.btn .btn-ico {
  font-size: 0.95em;
  line-height: 1;
  display: inline-block;
  margin-right: 0.35rem;
}

.btn .btn-ico.btn-ico-trailing {
  margin-right: 0;
  margin-left: 0.35rem;
}

.btn:disabled,
.btn.disabled {
  opacity: 0.58 !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
}

.btn-primary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info,
.btn-secondary,
.btn-outline-primary,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-warning,
.btn-outline-info,
.btn-outline-secondary {
  background: var(--btn-neutral-bg) !important;
  color: var(--btn-neutral-text) !important;
  border-color: var(--btn-neutral-border) !important;
  box-shadow: var(--btn-neutral-shadow) !important;
}

.btn-primary:hover,
.btn-success:hover,
.btn-danger:hover,
.btn-warning:hover,
.btn-info:hover,
.btn-secondary:hover,
.btn-outline-primary:hover,
.btn-outline-success:hover,
.btn-outline-danger:hover,
.btn-outline-warning:hover,
.btn-outline-info:hover,
.btn-outline-secondary:hover {
  background: var(--btn-neutral-bg-hover) !important;
  color: var(--btn-neutral-text) !important;
  border-color: rgba(11, 18, 32, 0.28) !important;
}

.btn-primary:active,
.btn-success:active,
.btn-danger:active,
.btn-warning:active,
.btn-info:active,
.btn-secondary:active,
.btn-outline-primary:active,
.btn-outline-success:active,
.btn-outline-danger:active,
.btn-outline-warning:active,
.btn-outline-info:active,
.btn-outline-secondary:active {
  background: var(--btn-neutral-bg-active) !important;
  border-color: rgba(11, 18, 32, 0.32) !important;
  color: #0f172a !important;
}

.btn-primary:focus-visible,
.btn-success:focus-visible,
.btn-danger:focus-visible,
.btn-warning:focus-visible,
.btn-info:focus-visible,
.btn-secondary:focus-visible,
.btn-outline-primary:focus-visible,
.btn-outline-success:focus-visible,
.btn-outline-danger:focus-visible,
.btn-outline-warning:focus-visible,
.btn-outline-info:focus-visible,
.btn-outline-secondary:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(31, 41, 55, 0.2) !important;
}

/* Shared badge/status palette (admin + public). */
.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.28rem;
  max-width: 100%;
  border: 1px solid var(--bt-badge-border);
  border-radius: var(--bt-badge-radius);
  padding: 0.23rem 0.56rem;
  font-size: var(--bt-badge-font-size);
  font-weight: 780;
  letter-spacing: 0;
  line-height: 1.12;
  vertical-align: baseline;
}

.badge.text-wrap {
  justify-content: flex-start;
  line-height: 1.25;
}

.badge.text-bg-primary,
.badge.bg-primary {
  background: var(--bt-badge-primary-bg) !important;
  border-color: var(--bt-badge-primary-border) !important;
  color: var(--bt-badge-primary-text) !important;
}

.badge.text-bg-success,
.badge.text-bg-success-subtle,
.badge.bg-success {
  background: var(--bt-badge-success-bg) !important;
  border-color: var(--bt-badge-success-border) !important;
  color: var(--bt-badge-success-text) !important;
}

.badge.text-bg-warning,
.badge.text-bg-warning-subtle,
.badge.bg-warning {
  background: var(--bt-badge-warning-bg) !important;
  border-color: var(--bt-badge-warning-border) !important;
  color: var(--bt-badge-warning-text) !important;
}

.badge.text-bg-danger,
.badge.text-bg-danger-subtle,
.badge.bg-danger {
  background: var(--bt-badge-danger-bg) !important;
  border-color: var(--bt-badge-danger-border) !important;
  color: var(--bt-badge-danger-text) !important;
}

.badge.text-bg-info,
.badge.text-bg-info-subtle,
.badge.bg-info {
  background: var(--bt-badge-info-bg) !important;
  border-color: var(--bt-badge-info-border) !important;
  color: var(--bt-badge-info-text) !important;
}

.badge.text-bg-secondary,
.badge.text-bg-secondary-subtle,
.badge.text-bg-light,
.badge.text-bg-dark,
.badge.bg-secondary,
.badge.bg-light,
.badge.bg-dark {
  background: var(--bt-badge-muted-bg) !important;
  border-color: var(--bt-badge-border) !important;
  color: var(--bt-badge-muted-text) !important;
}

.badge.border,
.badge[class*="border-"] {
  border-style: solid !important;
}

/* CSP-safe utility classes replacing legacy inline style attributes. */
.bt-pre-wrap { white-space: pre-wrap; }
.bt-pre-line { white-space: pre-line; }
.bt-card-header-rounded { border-radius: .85rem; }
.bt-mt-2rem { margin-top: 2rem; }
.bt-scroll-y-220 { max-height: 220px; overflow: auto; }
.bt-scroll-y-240 { max-height: 240px; overflow: auto; }
.bt-scroll-y-320 { max-height: 320px; overflow: auto; }
.bt-scroll-y-360 { max-height: 360px; overflow: auto; }
.bt-min-h-120 { min-height: 120px; }
.bt-min-h-220 { min-height: 220px; }
.bt-progress-10 { height: 10px; }
.bt-progress-zero { width: 0%; }
.bt-width-7rem { width: 7rem; }
.bt-width-12rem { width: 12rem; }
.bt-max-w-100 { max-width: 100%; }
.bt-max-w-100px { max-width: 100px; }
.bt-max-w-130px { max-width: 130px; }
.bt-max-w-200px { max-width: 200px; }
.bt-max-w-220px { max-width: 220px; }
.bt-max-w-240px { max-width: 240px; }
.bt-max-w-280px { max-width: 280px; }
.bt-max-w-380px { max-width: 380px; }
.bt-min-w-70px { min-width: 70px; }
.bt-min-w-88px { min-width: 88px; }
.bt-min-w-120px { min-width: 120px; }
.bt-min-w-130px { min-width: 130px; }
.bt-min-w-140px { min-width: 140px; }
.bt-min-w-210px { min-width: 210px; }
.bt-min-w-220px { min-width: 220px; }
.bt-min-w-240px { min-width: 240px; }
.bt-min-w-280px { min-width: 280px; }
.bt-min-w-320px { min-width: 320px; }
.bt-qr-tenant { max-width: 220px; width: 100%; height: auto; }
.bt-img-fluid-auto { max-width: 100%; height: auto; }
.bt-logo-preview { max-width: 100%; max-height: 100px; }
.bt-tenant-logo-preview { max-width: 100%; max-height: 120px; }
[data-csp-hidden="1"] { display: none !important; }
