:root {
    // --fu-btn-primary-filled-color: var(--fu-white-color);
    // --fu-btn-primary-filled-hover-color: var(--fu-white-color);
    // --fu-btn-primary-filled-active-color: var(--fu-white-color);
    // --fu-btn-primary-filled-bg-color: var(--fu-azure-500);
    // --fu-btn-primary-filled-hover-bg-color: var(--fu-azure-600);
    // --fu-btn-primary-filled-active-bg-color: var(--fu-azure-700);
    // --fu-btn-primary-filled-border-color: transparent;
    // --fu-btn-primary-filled-disabled-border-color: transparent;
  
    --fu-btn-success-filled-color: var(--fu-white-color);
    --fu-btn-success-filled-hover-color: var(--fu-white-color);
    --fu-btn-success-filled-active-color: var(--fu-white-color);
    --fu-btn-success-filled-bg-color: var(--fu-green-500);
    --fu-btn-success-filled-hover-bg-color: var(--fu-green-600);
    --fu-btn-success-filled-active-bg-color: var(--fu-green-700);
    --fu-btn-success-filled-border-color: transparent;
    --fu-btn-success-filled-disabled-border-color: transparent;
  
    --fu-btn-warning-filled-color: var(--fu-white-color);
    --fu-btn-warning-filled-hover-color: var(--fu-white-color);
    --fu-btn-warning-filled-active-color: var(--fu-white-color);
    --fu-btn-warning-filled-bg-color: var(--fu-orange-500);
    --fu-btn-warning-filled-hover-bg-color: var(--fu-orange-600);
    --fu-btn-warning-filled-active-bg-color: var(--fu-orange-700);
    --fu-btn-warning-filled-border-color: transparent;
    --fu-btn-warning-filled-disabled-border-color: transparent;
  
    --fu-btn-danger-filled-color: var(--fu-white-color);
    --fu-btn-danger-filled-hover-color: var(--fu-white-color);
    --fu-btn-danger-filled-active-color: var(--fu-white-color);
    --fu-btn-danger-filled-bg-color: var(--fu-red-500);
    --fu-btn-danger-filled-hover-bg-color: var(--fu-red-600);
    --fu-btn-danger-filled-active-bg-color: var(--fu-red-700);
    --fu-btn-danger-filled-border-color: transparent;
    --fu-btn-danger-filled-disabled-border-color: transparent;
  
    --fu-btn-filled-disabled-color: var(--fu-neutral-400);
    --fu-btn-filled-disabled-bg-color: var(--fu-neutral-100);
  
    // --fu-btn-primary-outline-color: var(--fu-azure-600);
    // --fu-btn-primary-outline-hover-color: var(--fu-azure-700);
    // --fu-btn-primary-outline-active-color: var(--fu-azure-800);
    // --fu-btn-primary-outline-bg-color: transparent;
    // --fu-btn-primary-outline-hover-bg-color: var(--fu-azure-50);
    // --fu-btn-primary-outline-active-bg-color: var(--fu-azure-100);
    // --fu-btn-primary-outline-border-color: var(--fu-azure-500);
    // --fu-btn-primary-outline-disabled-border-color: var(--fu-azure-500);
  
    --fu-btn-success-outline-color: var(--fu-green-600);
    --fu-btn-success-outline-hover-color: var(--fu-green-700);
    --fu-btn-success-outline-active-color: var(--fu-green-800);
    --fu-btn-success-outline-bg-color: transparent;
    --fu-btn-success-outline-hover-bg-color: var(--fu-green-50);
    --fu-btn-success-outline-active-bg-color: var(--fu-green-100);
    --fu-btn-success-outline-border-color: var(--fu-green-500);
    --fu-btn-success-outline-disabled-border-color: var(--fu-green-500);
  
    --fu-btn-warning-outline-color: var(--fu-orange-600);
    --fu-btn-warning-outline-hover-color: var(--fu-orange-700);
    --fu-btn-warning-outline-active-color: var(--fu-orange-800);
    --fu-btn-warning-outline-bg-color: transparent;
    --fu-btn-warning-outline-hover-bg-color: var(--fu-orange-50);
    --fu-btn-warning-outline-active-bg-color: var(--fu-orange-100);
    --fu-btn-warning-outline-border-color: var(--fu-orange-500);
    --fu-btn-warning-outline-disabled-border-color: var(--fu-orange-500);
  
    --fu-btn-danger-outline-color: var(--fu-red-600);
    --fu-btn-danger-outline-hover-color: var(--fu-red-700);
    --fu-btn-danger-outline-active-color: var(--fu-red-800);
    --fu-btn-danger-outline-bg-color: transparent;
    --fu-btn-danger-outline-hover-bg-color: var(--fu-red-50);
    --fu-btn-danger-outline-active-bg-color: var(--fu-red-100);
    --fu-btn-danger-outline-border-color: var(--fu-red-500);
    --fu-btn-danger-outline-disabled-border-color: var(--fu-red-500);
  
    --fu-btn-outline-disabled-color: var(--fu-neutral-300);
    --fu-btn-outline-disabled-border-color: var(--fu-neutral-200);
  
    // --fu-btn-primary-text-color: var(--fu-azure-600);
    // --fu-btn-primary-text-hover-color: var(--fu-azure-700);
    // --fu-btn-primary-text-active-color: var(--fu-azure-800);
    // --fu-btn-primary-text-bg-color: transparent;
    // --fu-btn-primary-text-hover-bg-color: var(--fu-azure-50);
    // --fu-btn-primary-text-active-bg-color: var(--fu-azure-100);
    // --fu-btn-primary-text-border-color: transparent;
    // --fu-btn-primary-text-disabled-border-color: transparent;
  
    --fu-btn-success-text-color: var(--fu-green-600);
    --fu-btn-success-text-hover-color: var(--fu-green-700);
    --fu-btn-success-text-active-color: var(--fu-green-800);
    --fu-btn-success-text-bg-color: transparent;
    --fu-btn-success-text-hover-bg-color: var(--fu-green-50);
    --fu-btn-success-text-active-bg-color: var(--fu-green-100);
    --fu-btn-success-text-border-color: transparent;
    --fu-btn-success-text-disabled-border-color: transparent;
  
    --fu-btn-warning-text-color: var(--fu-orange-600);
    --fu-btn-warning-text-hover-color: var(--fu-orange-700);
    --fu-btn-warning-text-active-color: var(--fu-orange-800);
    --fu-btn-warning-text-bg-color: transparent;
    --fu-btn-warning-text-hover-bg-color: var(--fu-orange-50);
    --fu-btn-warning-text-active-bg-color: var(--fu-orange-100);
    --fu-btn-warning-text-border-color: transparent;
    --fu-btn-warning-text-disabled-border-color: transparent;
  
    --fu-btn-danger-text-color: var(--fu-red-600);
    --fu-btn-danger-text-hover-color: var(--fu-red-700);
    --fu-btn-danger-text-active-color: var(--fu-red-800);
    --fu-btn-danger-text-bg-color: transparent;
    --fu-btn-danger-text-hover-bg-color: var(--fu-red-50);
    --fu-btn-danger-text-active-bg-color: var(--fu-red-100);
    --fu-btn-danger-text-border-color: transparent;
    --fu-btn-danger-text-disabled-border-color: transparent;
  
    --fu-btn-text-disabled-color: var(--fu-neutral-400);
    --fu-btn-text-disabled-bg-color: var(--fu-neutral-100);
  }
  
  .dark {
    --fu-btn-primary-filled-color: var(--fu-white-color);
    --fu-btn-primary-filled-hover-color: var(--fu-white-color);
    --fu-btn-primary-filled-active-color: var(--fu-white-color);
    --fu-btn-primary-filled-bg-color: var(--fu-primary-500);
    --fu-btn-primary-filled-hover-bg-color: var(--fu-primary-600);
    --fu-btn-primary-filled-active-bg-color: var(--fu-primary-700);
    --fu-btn-primary-filled-border-color: transparent;
    --fu-btn-primary-filled-disabled-border-color: transparent;
  
    --fu-btn-danger-filled-color: var(--fu-white-color);
    --fu-btn-danger-filled-hover-color: var(--fu-white-color);
    --fu-btn-danger-filled-active-color: var(--fu-white-color);
    --fu-btn-danger-filled-bg-color: var(--fu-red-500);
    --fu-btn-danger-filled-hover-bg-color: var(--fu-red-600);
    --fu-btn-danger-filled-active-bg-color: var(--fu-red-700);
    --fu-btn-danger-filled-border-color: transparent;
    --fu-btn-danger-filled-disabled-border-color: transparent;
  
    --fu-btn-success-filled-color: var(--fu-white-color);
    --fu-btn-success-filled-hover-color: var(--fu-white-color);
    --fu-btn-success-filled-active-color: var(--fu-white-color);
    --fu-btn-success-filled-bg-color: var(--fu-green-500);
    --fu-btn-success-filled-hover-bg-color: var(--fu-green-600);
    --fu-btn-success-filled-active-bg-color: var(--fu-green-700);
    --fu-btn-success-filled-border-color: transparent;
    --fu-btn-success-filled-disabled-border-color: transparent;
  
    --fu-btn-warning-filled-color: var(--fu-white-color);
    --fu-btn-warning-filled-hover-color: var(--fu-white-color);
    --fu-btn-warning-filled-active-color: var(--fu-white-color);
    --fu-btn-warning-filled-bg-color: var(--fu-orange-500);
    --fu-btn-warning-filled-hover-bg-color: var(--fu-orange-600);
    --fu-btn-warning-filled-active-bg-color: var(--fu-orange-700);
    --fu-btn-warning-filled-border-color: transparent;
    --fu-btn-warning-filled-disabled-border-color: transparent;
  
    --fu-btn-filled-disabled-color: var(--fu-neutral-700);
    --fu-btn-filled-disabled-bg-color: var(--fu-neutral-950);
  
    --fu-btn-primary-outline-color: var(--fu-primary-400);
    --fu-btn-primary-outline-hover-color: var(--fu-primary-400);
    --fu-btn-primary-outline-active-color: var(--fu-primary-400);
    --fu-btn-primary-outline-bg-color: transparent;
    --fu-btn-primary-outline-hover-bg-color: color-mix(in srgb, var(--fu-primary-500), transparent 96%);
    --fu-btn-primary-outline-active-bg-color: color-mix(in srgb, var(--fu-primary-500), transparent 84%);
    --fu-btn-primary-outline-border-color: var(--fu-primary-500);
    --fu-btn-primary-outline-disabled-border-color: var(--fu-primary-500);
  
    --fu-btn-success-outline-color: var(--fu-green-400);
    --fu-btn-success-outline-hover-color: var(--fu-green-400);
    --fu-btn-success-outline-active-color: var(--fu-green-400);
    --fu-btn-success-outline-bg-color: transparent;
    --fu-btn-success-outline-hover-bg-color: color-mix(in srgb, var(--fu-green-500), transparent 96%);
    --fu-btn-success-outline-active-bg-color: color-mix(in srgb, var(--fu-green-500), transparent 84%);
    --fu-btn-success-outline-border-color: var(--fu-green-500);
    --fu-btn-success-outline-disabled-border-color: var(--fu-green-500);
  
    --fu-btn-warning-outline-color: var(--fu-orange-400);
    --fu-btn-warning-outline-hover-color: var(--fu-orange-400);
    --fu-btn-warning-outline-active-color: var(--fu-orange-400);
    --fu-btn-warning-outline-bg-color: transparent;
    --fu-btn-warning-outline-hover-bg-color: color-mix(in srgb, var(--fu-orange-500), transparent 96%);
    --fu-btn-warning-outline-active-bg-color: color-mix(in srgb, var(--fu-orange-500), transparent 84%);
    --fu-btn-warning-outline-border-color: var(--fu-orange-500);
    --fu-btn-warning-outline-disabled-border-color: var(--fu-orange-500);
  
    --fu-btn-danger-outline-color: var(--fu-red-400);
    --fu-btn-danger-outline-hover-color: var(--fu-red-400);
    --fu-btn-danger-outline-active-color: var(--fu-red-400);
    --fu-btn-danger-outline-bg-color: transparent;
    --fu-btn-danger-outline-hover-bg-color: color-mix(in srgb, var(--fu-red-500), transparent 96%);
    --fu-btn-danger-outline-active-bg-color: color-mix(in srgb, var(--fu-red-500), transparent 84%);
    --fu-btn-danger-outline-border-color: var(--fu-red-500);
    --fu-btn-danger-outline-disabled-border-color: var(--fu-red-500);
  
    --fu-btn-outline-disabled-color: var(--fu-neutral-800);
    --fu-btn-outline-disabled-border-color: var(--fu-neutral-900);
  
    --fu-btn-primary-text-color: var(--fu-primary-400);
    --fu-btn-primary-text-hover-color: var(--fu-primary-400);
    --fu-btn-primary-text-active-color: var(--fu-primary-400);
    --fu-btn-primary-text-bg-color: transparent;
    --fu-btn-primary-text-hover-bg-color: color-mix(in srgb, var(--fu-primary-500), transparent 96%);
    --fu-btn-primary-text-active-bg-color: color-mix(in srgb, var(--fu-primary-500), transparent 84%);
    --fu-btn-primary-text-border-color: transparent;
    --fu-btn-primary-text-disabled-border-color: transparent;
  
    --fu-btn-success-text-color: var(--fu-green-400);
    --fu-btn-success-text-hover-color: var(--fu-green-400);
    --fu-btn-success-text-active-color: var(--fu-green-400);
    --fu-btn-success-text-bg-color: transparent;
    --fu-btn-success-text-hover-bg-color: color-mix(in srgb, var(--fu-green-500), transparent 96%);
    --fu-btn-success-text-active-bg-color: color-mix(in srgb, var(--fu-green-500), transparent 84%);
    --fu-btn-success-text-border-color: transparent;
    --fu-btn-success-text-disabled-border-color: transparent;
  
    --fu-btn-warning-text-color: var(--fu-orange-400);
    --fu-btn-warning-text-hover-color: var(--fu-orange-400);
    --fu-btn-warning-text-active-color: var(--fu-orange-400);
    --fu-btn-warning-text-bg-color: transparent;
    --fu-btn-warning-text-hover-bg-color: color-mix(in srgb, var(--fu-orange-500), transparent 96%);
    --fu-btn-warning-text-active-bg-color: color-mix(in srgb, var(--fu-orange-500), transparent 84%);
    --fu-btn-warning-text-border-color: transparent;
    --fu-btn-warning-text-disabled-border-color: transparent;
  
    --fu-btn-danger-text-color: var(--fu-red-400);
    --fu-btn-danger-text-hover-color: var(--fu-red-400);
    --fu-btn-danger-text-active-color: var(--fu-red-400);
    --fu-btn-danger-text-bg-color: transparent;
    --fu-btn-danger-text-hover-bg-color: color-mix(in srgb, var(--fu-red-500), transparent 96%);
    --fu-btn-danger-text-active-bg-color: color-mix(in srgb, var(--fu-red-500), transparent 84%);
    --fu-btn-danger-text-border-color: transparent;
    --fu-btn-danger-text-disabled-border-color: transparent;
  
    --fu-btn-text-disabled-color: var(--fu-neutral-700);
    --fu-btn-text-disabled-bg-color: var(--fu-neutral-950);
  }



.fu-btn {
    font-weight: 500;
    padding: 0 0.75rem;
    border-radius: 0.25rem;
    cursor: pointer;
    transition: background-color 0.15s ease-in-out;
    display: inline-flex;
    align-items: center;
    height: 2rem;
    min-width: 5rem;
    place-content: center;
    font-family: "Roboto", sans-serif;

    &[compact] {
        height: 1.5rem;
        font-size: .7rem;
        text-transform: uppercase;

        .fu-icon-container {
            display: flex;
            justify-content: center;
            align-items: center;

            svg {
                width: 1rem;
                height: 1rem;
            }
        }
    }
  
    &[rounded] {
        border-radius: 1rem;
    }
  
    &[icon] {
        width: 2rem;
        min-width: 2rem;
        padding: 0;
    }

    &[compact][icon] {
        width: 1.5rem;
        min-width: 1.5rem;
    }
}

.fu-btn-filled {
    &.fu-btn-primary {
      background-color: var(--fu-btn-primary-filled-bg-color, var(--fu-primary-500));
      border: 1.5px solid var(--fu-btn-primary-filled-border-color, transparent);
      color: var(--fu-btn-primary-filled-color, var(--fu-white-color)); 
  
      &:hover {
        background-color: var(--fu-btn-primary-filled-hover-bg-color, var(--fu-primary-600));
        color: var(--fu-btn-primary-filled-hover-color, var(--fu-white-color));
      }
  
      &:active {
        background-color: var(--fu-btn-primary-filled-active-bg-color, var(--fu-primary-700));
        color: var(--fu-btn-primary-filled-active-color, var(--fu-white-color));
      }
    }
    // TO BE REMOVED
    &.fu-btn-regular {
        @extend .fu-btn-primary; 
    }
  
    &.fu-btn-danger {
      background-color: var(--fu-btn-danger-filled-bg-color);
      border: 1.5px solid var(--fu-btn-danger-filled-border-color);
      color: var(--fu-btn-danger-filled-color);
  
      &:hover {
        background-color: var(--fu-btn-danger-filled-hover-bg-color);
        color: var(--fu-btn-danger-filled-hover-color);
      }
  
      &:active {
        background-color: var(--fu-btn-danger-filled-active-bg-color);
        color: var(--fu-btn-danger-filled-active-color);
      }
    }
  
    &.fu-btn-success {
      background-color: var(--fu-btn-success-filled-bg-color);
      border: 1.5px solid var(--fu-btn-success-filled-border-color);
      color: var(--fu-btn-success-filled-color);
  
      &:hover {
        background-color: var(--fu-btn-success-filled-hover-bg-color);
        color: var(--fu-btn-success-filled-hover-color);
      }
  
      &:active {
        background-color: var(--fu-btn-success-filled-active-bg-color);
        color: var(--fu-btn-success-filled-active-color);
      }
    }
  
    &.fu-btn-warning {
      background-color: var(--fu-btn-warning-filled-bg-color);
      border: 1.5px solid var(--fu-btn-warning-filled-border-color);
      color: var(--fu-btn-warning-filled-color);
  
      &:hover {
        background-color: var(--fu-btn-warning-filled-hover-bg-color);
        color: var(--fu-btn-warning-filled-hover-color);
      }
  
      &:active {
        background-color: var(--fu-btn-warning-filled-active-bg-color);
        color: var(--fu-btn-warning-filled-active-color);
      }
    }
  
    &[disabled] {
        pointer-events: none;
        background-color: var(--fu-btn-filled-disabled-bg-color);
        color: var(--fu-btn-filled-disabled-color);
    }
}

.fu-btn-outline {
    border: 1.5px solid;
  
    &.fu-btn-primary {
        background-color: var(--fu-btn-primary-outline-bg-color, transparent);
        border-color: var(--fu-btn-primary-outline-border-color, var(--fu-primary-500));
        color: var(--fu-btn-primary-outline-color, var(--fu-primary-600));
  
      &:hover {
        background-color: var(--fu-btn-primary-outline-hover-bg-color, var(--fu-primary-50));
        color: var(--fu-btn-primary-outline-hover-color, var(--fu-primary-600))
      }
  
      &:active {
        background-color: var(--fu-btn-primary-outline-active-bg-color, var(--fu-primary-100));
        color: var(--fu-btn-primary-outline-active-color, var(--fu-primary-600))
      }
    }
    // TO BE REMOVED
    &.fu-btn-regular {
        @extend .fu-btn-primary; 
    }
  
    &.fu-btn-success {
        background-color: var(--fu-btn-success-outline-bg-color);
        border-color: var(--fu-btn-success-outline-border-color);
        color: var(--fu-btn-success-outline-color);
  
      &:hover {
        background-color: var(--fu-btn-success-outline-hover-bg-color);
        color: var(--fu-btn-success-outline-hover-color)
      }
  
      &:active {
        background-color: var(--fu-btn-success-outline-active-bg-color);
        color: var(--fu-btn-success-outline-active-color)
      }
    }
  
    &.fu-btn-warning {
        background-color: var(--fu-btn-warning-outline-bg-color);
        border-color: var(--fu-btn-warning-outline-border-color);
        color: var(--fu-btn-warning-outline-color);
  
      &:hover {
        background-color: var(--fu-btn-warning-outline-hover-bg-color);
        color: var(--fu-btn-warning-outline-hover-color)
      }
  
      &:active {
        background-color: var(--fu-btn-warning-outline-active-bg-color);
        color: var(--fu-btn-warning-outline-active-color)
      }
    }

    &.fu-btn-danger {
        background-color: var(--fu-btn-danger-outline-bg-color);
        border-color: var(--fu-btn-danger-outline-border-color);
        color: var(--fu-btn-danger-outline-color);
  
      &:hover {
        background-color: var(--fu-btn-danger-outline-hover-bg-color);
        color: var(--fu-btn-danger-outline-hover-color)
      }
  
      &:active {
        background-color: var(--fu-btn-danger-outline-active-bg-color);
        color: var(--fu-btn-danger-outline-active-color)
      }
    }
  
    &[disabled] {
        pointer-events: none;
        color: var(--fu-btn-outline-disabled-color);
        border-color: var(--fu-btn-outline-disabled-border-color);
    }
}

.fu-btn-text {
    border: 1.5px solid var(--fu-btn-primary-text-border-color, transparent);
  
    &.fu-btn-primary {
        background-color: var(--fu-btn-primary-text-bg-color, transparent); 
        color: var(--fu-btn-primary-text-color, var(--fu-primary-600));
  
      &:hover {
        background-color: var(--fu-btn-primary-text-hover-bg-color, var(--fu-primary-50));
      }
  
      &:active {
        background-color: var(--fu-btn-primary-text-active-bg-color, var(--fu-primary-100));
      }
    }
    // TO BE REMOVED
    &.fu-btn-regular {
        @extend .fu-btn-primary; 
    }

    &.fu-btn-success {
        background-color: var(--fu-btn-success-text-bg-color); 
        color: var(--fu-btn-success-text-color);
  
      &:hover {
        background-color: var(--fu-btn-success-text-hover-bg-color);
      }
  
      &:active {
        background-color: var(--fu-btn-success-text-active-bg-color);
      }
    }

    &.fu-btn-warning {
        background-color: var(--fu-btn-warning-text-bg-color); 
        color: var(--fu-btn-warning-text-color);
  
      &:hover {
        background-color: var(--fu-btn-warning-text-hover-bg-color);
      }
  
      &:active {
        background-color: var(--fu-btn-warning-text-active-bg-color);
      }
    }
  
    &.fu-btn-danger {
        background-color: var(--fu-btn-danger-text-bg-color); 
        color: var(--fu-btn-danger-text-color);
  
      &:hover {
        background-color: var(--fu-btn-danger-text-hover-bg-color);
      }
  
      &:active {
        background-color: var(--fu-btn-danger-text-active-bg-color);
      }
    }

    &[raised] {
        box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2),
        0 2px 2px 0 rgba(0, 0, 0, 0.14), 
        0 1px 5px 0 rgba(0, 0, 0, 0.12);
    }
  
    &[disabled] {
        pointer-events: none;
        color: var(--fu-btn-text-disabled-color);
        background-color: transparent;
        box-shadow: none;
    }

    &[raised][disabled] {
        background-color: var(--fu-btn-text-disabled-bg-color, transparent);
        box-shadow: none;  
      }
}