/**
 * Orb Shared Button Component
 *
 * All modules with buttons use this shared class system.
 * Registered as handle 'orb-buttons', depends on 'orb-tokens'.
 */

/* Base */
.orb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: inherit;
  font-weight: var(--orb-font-weight-medium, 500);
  line-height: 1.4;
  text-decoration: none;
  border: 2px solid transparent;
  border-radius: var(--gl-radius-sm, 6px);
  cursor: pointer;
  transition: all var(--orb-transition-base, 0.3s ease);
}

/* Sizes */
.orb-btn--sm {
  padding: 10px 24px;
  font-size: var(--gl-font-size-sm, 0.875rem);
}

.orb-btn--md {
  padding: 14px 32px;
  font-size: 1rem;
}

.orb-btn--lg {
  padding: 18px 40px;
  font-size: 1.125rem;
}

/* Variants */
.orb-btn--filled {
  background: var(--gl-color-primary, #2563eb);
  color: var(--orb-color-white, #ffffff);
  border-color: var(--gl-color-primary, #2563eb);
}

.orb-btn--filled:hover {
  background: var(--orb-color-primary-dark, #1d4ed8);
  border-color: var(--orb-color-primary-dark, #1d4ed8);
}

.orb-btn--outline {
  background: transparent;
  color: var(--gl-color-primary, #2563eb);
  border-color: var(--gl-color-primary, #2563eb);
}

.orb-btn--outline:hover {
  background: var(--gl-color-primary, #2563eb);
  color: var(--orb-color-white, #ffffff);
}

.orb-btn--ghost {
  background: transparent;
  color: var(--gl-color-primary, #2563eb);
  border-color: transparent;
}

.orb-btn--ghost:hover {
  background: rgba(0, 0, 0, 0.04);
}

.orb-btn--text-link {
  background: transparent;
  color: var(--gl-color-primary);
  border-color: transparent;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.orb-btn--text-link:hover {
  text-decoration-thickness: 2px;
}

.orb-btn--white {
  background: var(--orb-color-white, #ffffff);
  color: var(--gl-color-primary);
  border-color: var(--orb-color-white, #ffffff);
}

.orb-btn--white:hover {
  background: rgba(255, 255, 255, 0.85);
}

/* Modifiers */
.orb-btn--block {
  display: flex;
  width: 100%;
}

/* Icon spacing */
.orb-btn__icon {
  display: inline-flex;
  flex-shrink: 0;
}
